<?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: Ritika Das</title>
    <description>The latest articles on DEV Community by Ritika Das (@ritikadas).</description>
    <link>https://dev.to/ritikadas</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%2F445628%2F6883ae97-0bb3-4179-b008-55212d58e18e.jpeg</url>
      <title>DEV Community: Ritika Das</title>
      <link>https://dev.to/ritikadas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ritikadas"/>
    <language>en</language>
    <item>
      <title>Fix Firefox's 'Show in Folder' not opening in File Manager</title>
      <dc:creator>Ritika Das</dc:creator>
      <pubDate>Tue, 07 Jun 2022 14:21:05 +0000</pubDate>
      <link>https://dev.to/ritikadas/fix-firefoxs-show-in-folder-not-opening-in-file-manager-1006</link>
      <guid>https://dev.to/ritikadas/fix-firefoxs-show-in-folder-not-opening-in-file-manager-1006</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Hey fellow Devs, it's Ritika here.&lt;/p&gt;

&lt;p&gt;I recently installed Gnome Shell as my Window Manager on my Linux environment, and some of my default settings got changed as a result. One of them is Firefox not opening the downloaded file location in File Manager, instead trying to open it in FreeCAD, a parametric 3D modeler software.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsrauzskmej2bpnchoc8i.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%2Fsrauzskmej2bpnchoc8i.gif" alt="The problem"&gt;&lt;/a&gt;&lt;br&gt;
Unfortunately, this is not something you can configure in the General settings in Firefox.&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%2Fo5zoy2qrguelse462tja.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%2Fo5zoy2qrguelse462tja.png" alt="Firefox Preferences"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Why it happens (MIME types)
&lt;/h2&gt;

&lt;p&gt;There's more to opening a file than just knowing its extension and the default application you've set it to open with.&lt;/p&gt;

&lt;p&gt;A MIME type (Multipurpose Internet Mail Extensions type) indicates the nature and format of a document, file, or assortment of bytes. (Source: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types" rel="noopener noreferrer"&gt;MDN&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;In Linux, these MIME types are commonly defined in a file &lt;code&gt;mimeinfo.cache&lt;/code&gt;.&lt;br&gt;
A MIME type has two parts: a type and a subtype, separated by a slash (/). It is accompanied by a value on the right side of the equals (=) sign.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;type/subtype=value

Examples:
text/plain=featherpad.desktop;libreoffice-writer.desktop;
video/mp4=vlc.desktop;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see, there can be multiple values after the equals (=) sign, which are separated by semicolons (;).&lt;/p&gt;

&lt;p&gt;The values are written in an order of priority: since &lt;code&gt;featherpad.desktop&lt;/code&gt; is before &lt;code&gt;libreoffice-writer.desktop&lt;/code&gt;, FeatherPad receives more importance and hence if it is installed, files of MIME type "&lt;code&gt;text/plain&lt;/code&gt;" will always be opened with FeatherPad.&lt;br&gt;
If someone were to uninstall FeatherPad from their system, &lt;code&gt;Libreoffice Writer&lt;/code&gt; will now be given preference to open files of the same MIME type.&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%2Fuo1y4f3aapa0wprj0kvm.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%2Fuo1y4f3aapa0wprj0kvm.gif" alt="Examples of MIME types from mimeinfo.cache file"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Our issue
&lt;/h2&gt;

&lt;p&gt;In our case, we are unable to open Folder location in File Manager, instead it opens in an app called FreeCAD.&lt;br&gt;
Directories have the MIME type of &lt;code&gt;inode/directory&lt;/code&gt;, so we'll look for this in our &lt;code&gt;mimeinfo.cache&lt;/code&gt; file.&lt;/p&gt;
&lt;h2&gt;
  
  
  The solution
&lt;/h2&gt;

&lt;p&gt;Open up your terminal, and execute the following commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd /usr/share/applications
sudo nvim mimeinfo.cache
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you do not have &lt;code&gt;nvim&lt;/code&gt; installed, you can also use &lt;code&gt;gedit&lt;/code&gt; or &lt;code&gt;vi&lt;/code&gt; to open the file with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo gedit mimeinfo.cache
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fg65v4jurecblyjh143el.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%2Fg65v4jurecblyjh143el.png" alt="Finding inode/directory value in mimeinfo.cache"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sure enough, the first value for &lt;code&gt;inode/directory&lt;/code&gt; is &lt;code&gt;FreeCAD.desktop&lt;/code&gt;. We need to remove it, so that &lt;code&gt;pcmanfm-qt.desktop&lt;/code&gt; can have the most priority for our folder opening actions.&lt;/p&gt;

&lt;p&gt;Save and close the file using &lt;code&gt;:wq&lt;/code&gt; if you're using nvim or vim.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why sudo?
&lt;/h2&gt;

&lt;p&gt;If we don't access the file with root permissions, the file stays &lt;strong&gt;read-only&lt;/strong&gt; for us, hence even if we open the file and make changes, we won't be able to save our changes.&lt;br&gt;
&lt;code&gt;sudo&lt;/code&gt; enables us to make changes to &lt;code&gt;mimeinfo.cache&lt;/code&gt; and save it.&lt;/p&gt;
&lt;h2&gt;
  
  
  Finally
&lt;/h2&gt;

&lt;p&gt;After you save the file, the change should take effect even without logging out or restarting your PC. Still it's good to restart and see if our changes stick.&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%2F5d67jtlrphvue5glmrr1.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%2F5d67jtlrphvue5glmrr1.gif" alt="Solved"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In case you've edited the &lt;code&gt;mimeinfo.cache&lt;/code&gt; file and changes still don't take place, remove the MimeType of &lt;code&gt;inode/directory&lt;/code&gt; after opening the Application's desktop file from the same directory, for example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nvim FreeCAD.desktop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and saving the changes.&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%2F91f5lvr5s6uqse86g230.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%2F91f5lvr5s6uqse86g230.png" alt="Editing MimeType in application's desktop file"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Did you find this useful? Comment below if you did, or if you faced any difficulty, let me know below. Wishing you a productive day ahead!&lt;/p&gt;

</description>
      <category>linux</category>
      <category>webdev</category>
      <category>computerscience</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Using NeoVim as an effortless way to edit code – Installation and Setup Guide for Windows 10</title>
      <dc:creator>Ritika Das</dc:creator>
      <pubDate>Wed, 16 Dec 2020 14:53:54 +0000</pubDate>
      <link>https://dev.to/ritikadas/using-neovim-as-an-effortless-way-to-edit-code-installation-and-setup-guide-for-windows-10-5dhc</link>
      <guid>https://dev.to/ritikadas/using-neovim-as-an-effortless-way-to-edit-code-installation-and-setup-guide-for-windows-10-5dhc</guid>
      <description>&lt;p&gt;Hey fellow Devs, it's Ritika here. &lt;br&gt;
I recently tried out NeoVim on my PC to see what it's like. Ever wanted to delete text between tags/braces, save files, switch to a certain line number in your code, undo, search for a word - all without having to touch your mouse? Try this fancy editor with me.&lt;/p&gt;
&lt;h1&gt;
  
  
  What is NeoVim?
&lt;/h1&gt;

&lt;p&gt;Neovim is a GUI that can help us maintain and contribute more by dividing the work, which can be installed on any platform such as Linux, Windows or macOS. We can replacing the code editors which take up a lot of disk space by installing this effective refactored version of Vim.&lt;/p&gt;
&lt;h1&gt;
  
  
  Installing NeoVim on Windows 10 and adding it to system PATH variable
&lt;/h1&gt;

&lt;p&gt;From NeoVim’s official repository on GitHub, download the zip file for Windows (64-bit) by &lt;a href="https://github.com/neovim/neovim/releases/download/v0.4.4/nvim-win64.zip" rel="noopener noreferrer"&gt;clicking here&lt;/a&gt; or the zip file for Windows (32-bit) by &lt;a href="https://github.com/neovim/neovim/releases/download/v0.4.4/nvim-win32.zip" rel="noopener noreferrer"&gt;clicking here&lt;/a&gt;, which is of size 23 MB approximately. &lt;/p&gt;

&lt;p&gt;Then extract the zip file by clicking on it once and selecting “Extract All”.&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F1.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F1.jpg" alt="1.jpg"&gt;&lt;/a&gt;&lt;br&gt;
After the extraction is completed, copy the location of your extracted folder and add it to system PATH variable.&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F2.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F2.jpg" alt="2.jpg"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a id="Label"&gt;Right-click on This PC&lt;/a&gt; -&amp;gt; Properties -&amp;gt; Advanced system settings on left side of Control Panel -&amp;gt; Environment Variables -&amp;gt; Double-click on Path in System Variables pane -&amp;gt; Add New Path by pressing New and pasting the extracted folder’s location and Click OK on all the three windows simultaneously.&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F3.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F3.jpg" alt="3.jpg"&gt;&lt;/a&gt;&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F4.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F4.jpg" alt="4.jpg"&gt;&lt;/a&gt;&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F5.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F5.jpg" alt="5.jpg"&gt;&lt;/a&gt;&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F6.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F6.jpg" alt="6.jpg"&gt;&lt;/a&gt;&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F7.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F7.jpg" alt="7.jpg"&gt;&lt;/a&gt;&lt;br&gt;
Now go to the extracted nvim-win64 and go into the nested folders Neovim -&amp;gt; bin. You’ll come across an application named nvim-qt.exe which is a GUI NeoVim client not to be confused with the terminal NeoVim - run it. &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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F8.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F8.jpg" alt="8.jpg"&gt;&lt;/a&gt;&lt;br&gt;
Neovim (nvim-qt) will open up like the following –&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F9.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F9.jpg" alt="9.jpg"&gt;&lt;/a&gt;&lt;br&gt;
[Note:- The application may be slightly different due to plugins I’ve already installed, but similar dark background will appear with tilde in each line.]&lt;/p&gt;
&lt;h1&gt;
  
  
  Accessing nvim from anywhere, without opening nvim-qt.exe
&lt;/h1&gt;

&lt;p&gt;Remember how we just added the ~/AppData/Local/nvim folder to our system PATH? Click here to revisit the steps. This time we’ll add the bin folder nested in nvim-win64 extracted folder, whose path looks like ~/nvim-win64/Neovim/bin. This will make Neovim more user-friendly for us, as it displays more options like :help for a walkthrough, :checkhealth for optimization on startup.&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F10.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F10.jpg" alt="10.jpg"&gt;&lt;/a&gt;&lt;br&gt;
Your path will look something like this. Copy it and repeat the steps of right-clicking This PC -&amp;gt; Properties -&amp;gt; Advanced System Settings -&amp;gt; Environment Variables -&amp;gt; System variables’ pane -&amp;gt; Double-click Path -&amp;gt; Paste the bin folder location in a new line -&amp;gt; Click some OKs!&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F11.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F11.jpg" alt="11.jpg"&gt;&lt;/a&gt;&lt;br&gt;
There you go! You can now open Neovim by pressing Windows + R keys (shortcut for Run), typing nvim and clicking OK.&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F12.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F12.jpg" alt="12.jpg"&gt;&lt;/a&gt;&lt;br&gt;
You can also open up Command Prompt, type nvim and press Enter for the same result.&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F13.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F13.jpg" alt="13.jpg"&gt;&lt;/a&gt;&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F14.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F14.jpg" alt="14.jpg"&gt;&lt;/a&gt;&lt;br&gt;
It’ll open up like this in both cases :&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F15.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F15.jpg" alt="15.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Boom! You have installed Neovim successfully. To exit Neovim for now, type :q and press Enter. The colon (:) takes Neovim into command mode, and q is for quit. If you want to have fun, let’s dive into configuring Neovim to make things more usable to you.&lt;/p&gt;
&lt;h1&gt;
  
  
  Configuring NeoVim – the easiest way
&lt;/h1&gt;

&lt;p&gt;The Neovim configuration file is named init.vim which can be edited for our purpose. It is usually found under the directory ~/AppData/Local/nvim. In case you’re not sure about the exact location, open Neovim from nvim-qt.exe, type :echo stdpath(‘config’) in Neovim and press Enter. &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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F16.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F16.jpg" alt="16.jpg"&gt;&lt;/a&gt;&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F17.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F17.jpg" alt="17.jpg"&gt;&lt;/a&gt;&lt;br&gt;
See? It echoes or displays the exact location of your nvim folder on the command line, if it exists.&lt;/p&gt;

&lt;p&gt;If not already present, we need to create the directory nvim within ~/AppData/Local i.e. we’ll put our init.vim file in ~/AppData/Local/nvim. &lt;br&gt;
Note :- Don’t get confused between nvim and nvim-data folders. Keep nvim-data folder untouched, and only create a new nvim folder if it doesn’t exist.&lt;br&gt;
The easiest way to do so is to open up a new .txt file inside ~/AppData/Local/nvim, add the first and last lines at least 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;call plug#begin('C:/Users/Ritika/AppData/Local/nvim/plugged') 
call plug#end()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we’ll add vim-plug for managing the plugins we are going to use in Neovim. For this, enter the Plug lines within the previous two lines. You don’t need to add all the plugins listed below; instead choose some plugins from them like onedark, coc.nvim, vim-airline. If you want cool icons beside folders and files, you can use the command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Plug 'ryanoasis/vim-devicons'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;although I haven’t used it in this installation.&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F18.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F18.jpg" alt="18.jpg"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;call plug#begin('C:/Users/Ritika/AppData/Local/nvim/plugged')
" below are some vim plugins for demonstration purpose.
" add the plugin you want to use here.
Plug 'joshdick/onedark.vim'
Plug 'iCyMind/NeoSolarized'
Plug 'neoclide/coc.nvim'
Plug 'junegunn/vim-easy-align'
Plug 'https://github.com/junegunn/vim-github-dashboard.git'
Plug 'scrooloose/nerdtree', { 'on':  'NERDTreeToggle' }
Plug 'tpope/vim-fireplace', { 'for': 'clojure' }
Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' }
Plug 'fatih/vim-go', { 'tag': '*' }
Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' }
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
call plug#end()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you are happy with your list of plugins, save the init configuration file as All Files, and add the .vim extension after filename init. Delete the init.txt file previously saved.&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F19.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F19.jpg" alt="19.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Vim-plug
&lt;/h1&gt;

&lt;p&gt;Vim-plug makes it easy to manage all your plugins on Neovim by downloading plugins into separate directories and loading them correctly. Open Windows PowerShell on your PC. &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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F20.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F20.jpg" alt="20.jpg"&gt;&lt;/a&gt;&lt;br&gt;
Then copy the following command, paste it into PowerShell prompt, and hit Enter to execute it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;md ~\AppData\Local\nvim\autoload
$uri = 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
(New-Object Net.WebClient).DownloadFile(
  $uri,
  $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath(
    "~\AppData\Local\nvim\autoload\plug.vim"
  )
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F21.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F21.jpg" alt="21.jpg"&gt;&lt;/a&gt;&lt;br&gt;
I received the first error because I already have vim-plug installed with the same commands. You don’t have to worry about it. Go ahead and press Enter after you arrive at this.&lt;br&gt;
This automatically creates a folder called autoload inside your ~/AppData/Local/nvim folder and a file called plug.vim inside the autoload folder after the aforementioned command execution.&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F22.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F22.jpg" alt="22.jpg"&gt;&lt;/a&gt;&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F23.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F23.jpg" alt="23.jpg"&gt;&lt;/a&gt;&lt;br&gt;
If you made it till this far, you are ready to install some plugins using vim-plug!&lt;/p&gt;
&lt;h1&gt;
  
  
  Installing plugins using vim-plug
&lt;/h1&gt;

&lt;p&gt;We included some Plug commands in our init.vim file to install a lot of plugins for Neovim. We can now install them into Neovim using vim-plug. Create a new folder called plugged inside the ~/AppData/Local/nvim as follows. This (plugged folder) is where all your plugins would get installed. Restart nvim if you already have it open.&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F24.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F24.jpg" alt="24.jpg"&gt;&lt;/a&gt;&lt;br&gt;
Open nvim by Run command, type the command :PlugInstall into the Neovim window and press Enter. You’ll notice that all the plugins you desired to get into Neovim by writing those down into init.vim will now start to get installed one-by-one. It takes a few minutes to install new plugins.&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F25.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F25.jpg" alt="25.jpg"&gt;&lt;/a&gt;&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F26.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F26.jpg" alt="26.jpg"&gt;&lt;/a&gt;&lt;br&gt;
You’ll receive a confirmation like this when Neovim is done installing the available plugins using vim-plug. To verify, check if we got any folders of our installed plugins inside plugged folder.&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F27.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F27.jpg" alt="27.jpg"&gt;&lt;/a&gt;&lt;br&gt;
There they are!&lt;br&gt;
You can delete, add new plugins, check status of installed plugins or update existing ones using commands like :PlugStatus for status check and :PlugUpdate for updating existing plugins. Always restart Neovim before you use any vim-plug commands like this, otherwise plugins may not get properly installed.&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F28.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F28.jpg" alt="28.jpg"&gt;&lt;/a&gt;&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F29.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F29.jpg" alt="29.jpg"&gt;&lt;/a&gt;&lt;br&gt;
As in above, the plugins onedark.vim and coc.nvim got updated. You can use :PlugDiff command to examine the changes between the previous version of the plugin and the current update.&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F30.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F30.jpg" alt="30.jpg"&gt;&lt;/a&gt;&lt;br&gt;
You successfully installed these plugins, updated them and compared the differences. If you are feeling adventurous, you can use :help vim-plug to find out more information about how you can use vim-plug to the fullest.&lt;/p&gt;
&lt;h1&gt;
  
  
  Setting up HTML, CSS, JSON, TypeScript extensions for Neovim using coc.vim
&lt;/h1&gt;

&lt;p&gt;coc.vim is a plugin which can be installed using vim-plug, which helps us in editing generic web development or other language code in a lot of supported languages. Check if you have the coc.vim plugin already installed using :PlugStatus command. &lt;br&gt;
&lt;strong&gt;Quick Tip :-&lt;/strong&gt;&lt;br&gt;
Instead of using certain apps to open .vim files and .json files for viewing contents, you can copy the exact location of the required file, paste it in any browser and hit Enter. &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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F31.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F31.jpg" alt="31.jpg"&gt;&lt;/a&gt;&lt;br&gt;
If not installed, open up init.vim for editing like before and include the following Vim command and save it as init.vim again.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Plug 'neoclide/coc.nvim', {'branch': 'release'}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Restart nvim, and install it using :PlugInstall. Then restart nvim again.&lt;br&gt;
Type the command :checkhealth in Neovim and press Enter. It’ll show you if the coc service is already running. If yes, use :CocInfo for details on the service.&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F32.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F32.jpg" alt="32.jpg"&gt;&lt;/a&gt;&lt;br&gt;
To install language extensions, we need to use :CocInstall lang1 lang2 lang3 format command.&lt;br&gt;
We can include as many as we want, with at least one language. For example, if we want to install only the extension for TypeScript, we use &lt;br&gt;
:CocInstall coc-tsserver&lt;br&gt;
else if we want to install extensions for HTML, CSS and JSON all at one go, we use&lt;br&gt;
:CocInstall coc-html coc-css coc-json&lt;br&gt;
You’ll see a message saying it has been installed (here I only installed the one for HTML).&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F33.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F33.jpg" alt="33.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Uninstalling a coc extension
&lt;/h1&gt;

&lt;p&gt;We use :CocUninstall command followed by the extension name to uninstall the particular extension. Example – to uninstall a previously installed CSS extension for coc, we use&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;:CocUninstall coc-css
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Updating a coc extension
&lt;/h1&gt;

&lt;p&gt;We use :CocUpdate command to update a coc extension.&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F34.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F34.jpg" alt="34.jpg"&gt;&lt;/a&gt;&lt;br&gt;
It will update the available coc extensions.&lt;/p&gt;
&lt;h1&gt;
  
  
  Configuring coc-settings to support not implemented languages and checking existing coc extensions list
&lt;/h1&gt;

&lt;p&gt;The list of all available coc-extensions are listed here. &lt;br&gt;
You can quickly check all the installed extensions available to you by :CocList extensions command.&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F35.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F35.jpg" alt="35.jpg"&gt;&lt;/a&gt;&lt;br&gt;
A plus (+) sign before the extension means that it is loaded. A minus (-) sign before it means that it has been disabled. An asterisk (*) sign indicates that it has been activated. A question (?) mark implies that it is an invalid extension. In the above example, coc-prettier has been activated and the rest have been loaded. Press Esc key to go back after you have checked your extensions.&lt;br&gt;
To edit the configuration file for coc.vim, we use :CocConfig command, which opens up coc-settings.json for us to edit and add other languages. Delete all the pre-existing text using :%d command from Normal Mode to Command Mode, paste the following code into the editor by right-clicking into the empty file and save the configuration file coc-settings.json using :w command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "suggest.noselect": false,
  "eslint.nodePath": "/home/user/.config/yarn/global/node_modules",
  "coc.preferences.formatOnSaveFiletypes": [
    "javascript",
    "typescript",
    "typescriptreact",
    "json",
    "javascriptreact",
    "typescript.tsx",
    "graphql",
    "html"
  ]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F36.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%2Fraw.githubusercontent.com%2FRitika-Das%2FNeovim_Shuffle_Time%2Fmain%2FScreenshots%2F36.jpg" alt="36.jpg"&gt;&lt;/a&gt;&lt;br&gt;
Use keys h, j, k and l to navigate left, down, up and right respectively on the file to be edited in Normal Mode, and press i to Insert. Press Esc key to go back to Normal Mode from Insert Mode. In the coc.preferences.formatOnSaveFiletypes array, type in your preferred languages as array elements within double quotation marks such as “html”, and remove any if not required. Save the file again using :w command.&lt;/p&gt;

&lt;p&gt;Did you find this useful? Or did you get stuck somewhere in the middle? Comment below to let me know :)&lt;/p&gt;

</description>
      <category>vim</category>
      <category>neovim</category>
      <category>plugins</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Make your own Music Player "Online" using Arduino Uno, a Buzzer and a Resistor!</title>
      <dc:creator>Ritika Das</dc:creator>
      <pubDate>Sat, 17 Oct 2020 04:12:23 +0000</pubDate>
      <link>https://dev.to/ritikadas/make-your-own-music-player-online-using-arduino-uno-a-buzzer-and-a-resistor-3bbn</link>
      <guid>https://dev.to/ritikadas/make-your-own-music-player-online-using-arduino-uno-a-buzzer-and-a-resistor-3bbn</guid>
      <description>&lt;h1&gt;
  
  
  Play_Music_Using_Arduino_Buzzer
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Welcome dear reader! It's Ritika here.&lt;/p&gt;

&lt;p&gt;This will guide you on how to play musical notes of any song on a piezoelectric buzzer, using Arduino Uno R3, a resistor and some connecting wires.&lt;br&gt;
This project can be attempted by complete beginners of Arduino as well as others, so jump into the details!&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview and Prerequisites
&lt;/h2&gt;

&lt;p&gt;We will be referring to piano notes only (for clarity). You are free to choose any instrument that you are comfortable with, examples - flute, saxophone, guitar, harmonium etc.&lt;/p&gt;

&lt;p&gt;An 88-keys piano keyboard has the keys (in order) :&lt;/p&gt;

&lt;center&gt;
&lt;code&gt;A0, A0#, B0, &lt;/code&gt;&lt;br&gt;
&lt;code&gt;C1, C1#, D1, D1#, E1, F1, F1#, G1, G1#, A1, A1#, B1, &lt;/code&gt;&lt;br&gt;
&lt;code&gt;C2, C2#, D2, D2#, E2, F2, F2#, G2, G2#, A2, A2#, B2, &lt;/code&gt;&lt;br&gt;
&lt;code&gt;C3, C3#, D3, D3#, E3, F3, F3#, G3, G3#, A3, A3#, B3, &lt;/code&gt;&lt;br&gt;
&lt;code&gt;C4, C4#, D4, D4#, E4, F4, F4#, G4, G4#, A4, A4#, B4, &lt;/code&gt;&lt;br&gt;
&lt;code&gt;C5, C5#, D5, D5#, E5, F5, F5#, G5, G5#, A5, A5#, B5, &lt;/code&gt;&lt;br&gt;
&lt;code&gt;C6, C6#, D6, D6#, E6, F6, F6#, G6, G6#, A6, A6#, B6, &lt;/code&gt;&lt;br&gt;
&lt;code&gt;C7, C7#, D7, D7#, E7, F7, F7#, G7, G7#, A7, A7#, B7, &lt;/code&gt;&lt;br&gt;
&lt;code&gt; C8&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
&lt;/center&gt;

&lt;p&gt;where A0 and C8 are the lowest and highest pitches possible respectively.&lt;br&gt;
You can hear the notes of such a piano at &lt;a href="https://pianu.com/" rel="noopener noreferrer"&gt;https://pianu.com/&lt;/a&gt; (Click on "Full Piano" and click the keys).&lt;br&gt;&lt;br&gt;&lt;br&gt;
&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%2Fres.cloudinary.com%2Fritikadas%2Fimage%2Fupload%2Fv1596050238%2FMy_Images%2FArduino_Notes_bn7u8t.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%2Fres.cloudinary.com%2Fritikadas%2Fimage%2Fupload%2Fv1596050238%2FMy_Images%2FArduino_Notes_bn7u8t.png"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;Piezoelectric buzzers or simply piezo buzzers are used mainly in alarm circuits to serve as a beeping or security alerting device mechanism. You can generally find them at any electronics shop at a price range from ₹20 to ₹70, i.e. 0.27$ to 0.94$. It is tiny (~ 1.2 cm), available in voltage ratings from 3.3V to 12V (5V is most common), and can produce frequencies from about 31 Hz to 65535 Hz. Good for the "20 Hz to 20000 Hz" hearing beings, we aren't missing out much on frequencies!&lt;/p&gt;

&lt;h3&gt;Components/Software Required :&lt;/h3&gt;

&lt;p&gt;Click here to skip to the schematic.&lt;br&gt;&lt;br&gt;
• 1 Arduino Uno R3 (a microcontroller board based on the ATmega328P)&lt;br&gt;&lt;br&gt;
• Arduino Software (open-source IDE) from &lt;a href="https://www.arduino.cc/en/Main/Software" rel="noopener noreferrer"&gt;https://www.arduino.cc/en/Main/Software&lt;/a&gt; (Installed Software or Web Editor)&lt;br&gt;&lt;br&gt;
• 1 Piezoelectric Buzzer (preferably 5V rated to be compatible with your Arduino Uno R3)&lt;br&gt;&lt;br&gt;
• 1 kΩ resistor (to reduce noise)&lt;br&gt;&lt;br&gt;
• 3 Jumper Wires (1 Male-to-Female for Arduino pin to buzzer leg, 1 Female-to-Female for resistor to buzzer leg, 1 Male-to-Female for Arduino pin to resistor)&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;br&gt;Alternatively, if you want to use a breadboard (highly recommended), your list would be :&lt;br&gt;&lt;/p&gt;

&lt;p&gt;• 1 Arduino Uno R3 (a microcontroller board based on the ATmega328P)&lt;br&gt;&lt;br&gt;
• Arduino Software (open-source IDE) from &lt;a href="https://www.arduino.cc/en/Main/Software" rel="noopener noreferrer"&gt;https://www.arduino.cc/en/Main/Software&lt;/a&gt; (Installed Software or Web Editor)&lt;br&gt;&lt;br&gt;
• 1 Piezoelectric Buzzer (preferably 5V rated to be compatible with your Arduino Uno R3)&lt;br&gt;&lt;br&gt;
• 1 kΩ resistor (to reduce noise)&lt;br&gt;&lt;br&gt;
• 1 Mini Breadboard&lt;br&gt;&lt;br&gt;
• 2 Jumper Wires (1 Male-to-Male for Arduino pin to buzzer leg's line on breadboard, 1 Male-to-Male for Arduino pin to resistor's line on breadboard)&lt;br&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Extra Applications/Features (Recommended)
&lt;/h2&gt;

&lt;p&gt;• Note Recognizer (Android App) from &lt;a href="https://play.google.com/store/apps/details?id=nl.robertloeberdevelopment&amp;amp;hl=en_IN" rel="noopener noreferrer"&gt;https://play.google.com/store/apps/details?id=nl.robertloeberdevelopment&amp;amp;hl=en_IN&lt;/a&gt;&lt;br&gt;&lt;br&gt;
• Stopwatch feature (Available in the Clock App for most phones) &lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;Chances are that you might have come across a project online where the creator is playing music using an Arduino, and brownie points for you if you have even come across the actual code that went into it. Let me debunk it for you here.&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting The Notes Right - Sampling
&lt;/h3&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%2Fres.cloudinary.com%2Fritikadas%2Fimage%2Fupload%2Fv1596311660%2FMy_Images%2Fezgif-6-806bb3d9aa80_ylpgpn.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%2Fres.cloudinary.com%2Fritikadas%2Fimage%2Fupload%2Fv1596311660%2FMy_Images%2Fezgif-6-806bb3d9aa80_ylpgpn.gif"&gt;&lt;/a&gt;First, you want to make up your mind about the song you are planning to make Arduino "sing" for you. As it's your first time, settle on choosing one which has fairly less melodies, but which you really love. Hints - Jingle Bells, Hallelujah, Fur Elise or even Despacito. Something which has tunes really stuck in your head.&lt;br&gt;
Now you need to get down to the musical notes which will give shape to your code. You can do so using the Note Recognizer App (assuming you might have trouble figuring out musical notes instantly). You just need to hum into the microphone piece of your phone or hands-free and voilà! It tells you what each note is called, and you are ready to hold the humming notes for a while and jot the names down. Even a sneeze or a snore has a note, so don't worry. You'll also see a decimal number being displayed upwards along with your note name; it's not needed right now, so we'll visit that later.&lt;br&gt;
To see the GIF clearly, you may &lt;a href="https://camo.githubusercontent.com/59081a946e7ea2d2b16c2b9cd268fe638f4c062c/68747470733a2f2f7265732e636c6f7564696e6172792e636f6d2f726974696b616461732f696d6167652f75706c6f61642f76313539363331313636302f4d795f496d616765732f657a6769662d362d3830366262336439616138305f796c7067706e2e676966" rel="noopener noreferrer"&gt;click here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting The Note Durations Right - Approximation
&lt;/h3&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%2Fres.cloudinary.com%2Fritikadas%2Fimage%2Fupload%2Fv1596314104%2FMy_Images%2Fezgif-6-2042206637bd_fiyjcy.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%2Fres.cloudinary.com%2Fritikadas%2Fimage%2Fupload%2Fv1596314104%2FMy_Images%2Fezgif-6-2042206637bd_fiyjcy.gif"&gt;&lt;/a&gt;Some notes last longer, some notes last shorter. THIS is the slightly tricky part. Let me give you an example. In the song Despacito, you might notice that the parts DES and PA are longer than the fast CI and TO parts. On average, if you sing it out, DES took 0.27 seconds (270 milliseconds), PA also took 0.27 seconds (270 milliseconds), CI took 0.19 seconds (190 milliseconds) and TO also took 0.19 seconds (190 milliseconds). How did I time these? Using the Stopwatch feature in my phone. You know how the song goes, you have jotted down the notes too; now time each note out and jot down the milliseconds (if you notice a 0M00S.00 format, you'll get something in 0.XY seconds, now multiply that by 1000, there you have your XY0 milliseconds!). We'll be needing all these data in the next section.&lt;br&gt;&lt;br&gt;
To see the GIF clearly, you may &lt;a href="https://camo.githubusercontent.com/42de300b300cee329d1708f3717c2b5d5a825f88/68747470733a2f2f7265732e636c6f7564696e6172792e636f6d2f726974696b616461732f696d6167652f75706c6f61642f76313539363331343130342f4d795f496d616765732f657a6769662d362d3230343232303636333762645f6669796a63792e676966" rel="noopener noreferrer"&gt;click here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Almost There!
&lt;/h2&gt;

&lt;p&gt;Now it's time to open the file Baianá_by_Bakermat.ino in this repository (or &lt;a href="https://github.com/Ritika-Das/Play_Music_Using_Arduino_Buzzer/blob/master/Baian%C3%A1_by_Bakermat.ino" rel="noopener noreferrer"&gt;click here&lt;/a&gt; for it!). Wanna have a listen? Here is the &lt;a href="https://www.youtube.com/watch?v=iaGjz4dtr3o" rel="noopener noreferrer"&gt;original song&lt;/a&gt; that I have butchered (for educational purposes). Superglued my ears to this song!&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Basics
&lt;/h3&gt;

&lt;p&gt;• If we look at lines 10 to 98 - those are the defined notes with frequencies (in Hz). Our Arduino would be connected to a buzzer. A buzzer can't understand code! It is instructed by the microprocessor to play certain frequencies according to our code. Just as humans talk with fundamental frequency from 85 to 180 Hz (average adult male) or from 165 to 255 Hz (average adult female), every musical note is based upon a certain frequency. If you use Arduino IDE to compile your code, you can make it compact by replacing these lines of code with the "pitches.h" library in Arduino &lt;code&gt;#include "pitches.h"&lt;/code&gt;&lt;br&gt;&lt;br&gt;
&lt;br&gt;• If we look at lines 99 to 119 - we see &lt;code&gt;int melody[]&lt;/code&gt;, where melody is an integer array. It consists of all the musical notes we jotted down for our Arduino song. But wait, what are those 0s doing? We didn't jot them down! Well, those are called &lt;code&gt;rest notes&lt;/code&gt;. Rest notes are used to denote pauses in between the notes, and indicate the frequency 0 Hz. It might be those parts when you sang the highest note in the climax of the song, then take a few milliseconds of rest to catch up on breath, and proceed to sing the next notes. &lt;em&gt;Don't add the rest notes (0s) to the melody[] now!&lt;/em&gt; For now, just type in the jotted notes. Remember - &lt;code&gt;A#4&lt;/code&gt; from the app is typed as &lt;code&gt;NOTE_AS4&lt;/code&gt; and so on.&lt;br&gt;&lt;br&gt;
&lt;br&gt;• If we look at lines 121 to 140 - we see &lt;code&gt;int durations[]&lt;/code&gt;, where durations is also an integer array. It consists of the durations of all the musical notes in milliseconds, which we have jotted down as well. Line 122 is &lt;code&gt;400,20, 600,20, 210,20, 210,20, 210,20, 210,20,&lt;/code&gt;, which corresponds to the durations for notes in line 101 &lt;code&gt;NOTE_F5,0, NOTE_D5,0, NOTE_A5,0, NOTE_C6,0, NOTE_A5,0, NOTE_D6,0, &lt;/code&gt;. See the 20s? Those are the durations for the rest notes. The 400, 600 and the four 210s are the durations of the notes F5, D5, A5, C6, A5, D6 respectively. For now, type in the durations of the notes excluding the rest notes.&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Going Deeper
&lt;/h3&gt;

&lt;p&gt;• Now count the number of elements (entries separated by commas) in each array (melody[] and durations[]) and compare them. Are they same? If yes, great job! If not, check the note/duration you missed while typing. Since notes/melodies and durations correspond to each other, both the arrays must have the same number of elements. When you are done, squeeze in the rest notes (0s) in the melody[] array and add appropriate durations to them while timing them on Stopwatch. If there are no rest notes in your song, mark the corresponding duration with 0 milliseconds in the durations[] array.&lt;br&gt;&lt;br&gt;
&lt;br&gt;• If we look at lines 141 to 147 - we see &lt;code&gt;int songLength = sizeof(melody)/sizeof(melody[0]);&lt;/code&gt; on line 141. Here &lt;code&gt;sizeof(melody)&lt;/code&gt; denotes the size of the entire melody array of notes, i.e. &lt;br&gt;&lt;/p&gt;
&lt;center&gt;(integer size) X (total number of notes). ------------(1)&lt;/center&gt;
&lt;br&gt; On the other hand, &lt;code&gt;sizeof(melody[0])&lt;/code&gt; denotes the size of the first note element in the array, i.e. simply &lt;br&gt;&lt;center&gt;(integer size) X (number of notes) = (integer size) X 1 = (integer size). ------------(2)&lt;/center&gt;
&lt;br&gt; Dividing (1) by (2), we'll get (total number of notes) as the &lt;code&gt;int songLength&lt;/code&gt;.&lt;br&gt;In the other lines having &lt;code&gt;void setup()&lt;/code&gt;, there's nothing to set up. You may leave it as it is.&lt;br&gt;&lt;br&gt;
&lt;br&gt;• If we look at lines 148 to 156 - we encounter the &lt;code&gt;void loop()&lt;/code&gt; portion. This function is used when you want your song to loop (definitely try this one for the song to sound catchy!), that is, play over and over. Line 149 has &lt;code&gt;for (int thisNote = 0; thisNote &amp;lt; songLength; thisNote++)&lt;/code&gt;, which ensures that all your notes from the beginning to the endnote are successfully played. Line 151 has &lt;code&gt;tone(8, melody[thisNote], duration);&lt;/code&gt;, where the number "8" indicates the Arduino pin that the negative terminal of the buzzer is connected to. This is also found in line 154 as &lt;code&gt;noTone(8);&lt;/code&gt;. If you wish to connect the Buzzer to another Arduino pin (i.e. other than 8), make sure to change the number in these two lines.&lt;br&gt;
&lt;h2&gt;
  
  
  Takeaways and Possible Quagmire
&lt;/h2&gt;

&lt;p&gt;&lt;a id="Schematic"&gt;The connection can be followed as in this image :&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;br&gt;&lt;a href="https://www.tinkercad.com/things/bhkltIIL1Fd" rel="noopener noreferrer"&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%2Fres.cloudinary.com%2Fritikadas%2Fimage%2Fupload%2Fv1596320065%2FMy_Images%2Fbuzzer_e8bd0b.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%2Fres.cloudinary.com%2Fritikadas%2Fimage%2Fupload%2Fv1596320065%2FMy_Images%2Fbuzzer_e8bd0b.jpg" alt="Schematic"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;• If you wish to virtually simulate this project due to unavailability of components, go ahead and click on the above picture! It'll take you where you'll have the options of &lt;br&gt;🅐 "Start Simulation" - if you directly want to see what it's like, and &lt;br&gt;🅑 "Tinker This" - if you want to create a copy for yourself without altering the original project, tweak the code and then start simulation.&lt;br&gt;&lt;br&gt;
&lt;br&gt;• Did you know that the note recognition range for the Note Recognizer App is E2 - G7? That is, no whistle notes.&lt;br&gt;&lt;br&gt;
&lt;br&gt;• If you think that your final Arduino song sounds a bit low on the pitch, just change all the musical notes in &lt;code&gt;int melody[]&lt;/code&gt; up one scale : change &lt;code&gt;NOTE_CS4&lt;/code&gt; to &lt;code&gt;NOTE_CS5&lt;/code&gt;, &lt;code&gt;NOTE_G5&lt;/code&gt; to &lt;code&gt;NOTE_G6&lt;/code&gt; and so on, keeping the durations same. Trust me, it will automatically sound better! Or maybe close to this : &lt;br&gt;&lt;br&gt;&lt;br&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%2Fres.cloudinary.com%2Fritikadas%2Fimage%2Fupload%2Fv1596321690%2FMy_Images%2FH61c528c8e2e64a8cbc8182c17718b04ba_xi1lan.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%2Fres.cloudinary.com%2Fritikadas%2Fimage%2Fupload%2Fv1596321690%2FMy_Images%2FH61c528c8e2e64a8cbc8182c17718b04ba_xi1lan.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;&lt;br&gt;
&lt;br&gt;• Instead of using note names in the melody array, we could have used the frequencies of the notes instead, save for it may be cumbersome.&lt;br&gt;&lt;br&gt;
&lt;br&gt;• Encountering issues with this project is normal, but issue-solving attempts with no respite may feel like an abyss! &lt;a href="https://github.com/Ritika-Das/Play_Music_Using_Arduino_Buzzer/issues/new" rel="noopener noreferrer"&gt;Click here&lt;/a&gt; to cut yourself some slack, and let me know where you're stuck. You've worked your heads off at this point.&lt;br&gt;&lt;br&gt;
&lt;br&gt;• Fun fact - I've built sandcastles in the air with this project for 2+ years, and I've finally given it a shape. If you have some ideas to improve upon the code, add something new to this project or something that you think I might have missed out on - create a &lt;a href="https://github.com/Ritika-Das/Play_Music_Using_Arduino_Buzzer/compare" rel="noopener noreferrer"&gt;pull request here&lt;/a&gt;. If I agree with your changes/additions, I will merge it.&lt;br&gt;&lt;br&gt;

</description>
      <category>arduino</category>
      <category>musicplayer</category>
      <category>tinkercad</category>
      <category>buzzer</category>
    </item>
    <item>
      <title>Confident vibes, and bubbling tea ideas from Open Source Contributions - Making the most out of it!</title>
      <dc:creator>Ritika Das</dc:creator>
      <pubDate>Sat, 17 Oct 2020 03:38:51 +0000</pubDate>
      <link>https://dev.to/ritikadas/confident-vibes-and-bubbling-tea-ideas-from-open-source-contributions-making-the-most-out-of-it-mlo</link>
      <guid>https://dev.to/ritikadas/confident-vibes-and-bubbling-tea-ideas-from-open-source-contributions-making-the-most-out-of-it-mlo</guid>
      <description>&lt;h3&gt;
  
  
  What I Learned From Hacktoberfest
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oUvmkuiE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/dotvqqbn8jk3x76j46ou.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oUvmkuiE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/dotvqqbn8jk3x76j46ou.png" alt="DigitalOcean Parrot" width="572" height="599"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm glad to be a part of the Hacktoberfest 2020, and kudos to the fact that I could learn so much more about GitHub, web development, programming languages, how codes are approved/merged and most importantly how we all could be of help by contributing code and more to amazing repositories. I agree that I have become a lot more confident - looking forward to 2021's edition, thanks DigitalOcean!&lt;/p&gt;

&lt;p&gt;I contributed some 8085 Assembly language programs, simple Python and Turtle design codes, Scilab plots, GitHub workflows, a cloud haiku, fixed a broken link for a website and added a term to Dev glossary! This was my first Hacktoberfest. I hope I can strive harder and become a better skilled developer by the next edition.&lt;/p&gt;

&lt;p&gt;I used to wonder, can I even contribute something that can be useful "enough"? Then repo issues and alongside ideas came pouring in. And it unleashed the developer side in me. I didn't think I could win a tee, but all I wanted for this fest was that at least my PRs get merged sometime later and if not - that I received some feedback on what I could do better. It's like this fest whispered in my ears, "Never stop believing in what you are capable of." &lt;/p&gt;

&lt;p&gt;So my take is - give it your all. Give shape to your ideas by using code in JS/CSS/HTML/PHP, or inhale some inspiration from YouTube videos or W3Schools courses on your favourite framework. But remember, baby steps each day. You have my luck!&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
    </item>
  </channel>
</rss>
