<?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: Ruphaa</title>
    <description>The latest articles on DEV Community by Ruphaa (@ruphaa).</description>
    <link>https://dev.to/ruphaa</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%2F45891%2F5472bf96-71b1-4571-8984-3857a16587e5.jpg</url>
      <title>DEV Community: Ruphaa</title>
      <link>https://dev.to/ruphaa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ruphaa"/>
    <language>en</language>
    <item>
      <title>2022: Year in Review</title>
      <dc:creator>Ruphaa</dc:creator>
      <pubDate>Fri, 06 Jan 2023 07:30:00 +0000</pubDate>
      <link>https://dev.to/ruphaa/2022-year-in-review-56a1</link>
      <guid>https://dev.to/ruphaa/2022-year-in-review-56a1</guid>
      <description>&lt;p&gt;Well, it’s been a great year. It's been 3 years since I wrote my last year-in-review. This year I took some time to reflect on what happened in 2022. It's been a fantastic year for me, both in my career and personal life.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ek2pi0_D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ruphaa.dev/images/blog/2022-year-in-review.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ek2pi0_D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ruphaa.dev/images/blog/2022-year-in-review.png" alt="2022 Year in Review cover picture" width="880" height="462"&gt;&lt;/a&gt;&lt;/p&gt;
Credits: Created using Canva



&lt;h3&gt;
  
  
  ✨ I joined Canva's design system team
&lt;/h3&gt;

&lt;p&gt;I feel incredibly honored and grateful to be a part of Canva ♥️ especially the Design System team.&lt;br&gt;
Ever since I joined, it's been a beautiful journey of constant learning and admiration.&lt;/p&gt;

&lt;p&gt;It has given me some of the best learning I’ve done in my life. Looking forward to learning more and contributing more to this journey.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✨ I joined The 5 AM Club
&lt;/h3&gt;

&lt;p&gt;Yes, it's utterly surprising but at the same time, miraculous. &lt;br&gt;
It's a great way to make the most of the day and achieve my goals ☀️.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✨ I redid my website using Blogster
&lt;/h3&gt;

&lt;p&gt;With the magic of &lt;a href="https://twitter.com/flexdinesh/status/1605685191703687168"&gt;Blogster&lt;/a&gt;, I redid my entire website in just a single afternoon. I now call it my "Digital garden 🪴". &lt;/p&gt;

&lt;p&gt;I feel liberated to write more about any content or notes I want to share or keep it as a reference without overthinking or over-preparing.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✨ I read 35 books this year
&lt;/h3&gt;

&lt;p&gt;Initially, I planned to complete 50 books and but I failed, which in a way worked out well for me. I took time to cherish every single book I read and it's been fantastic. This year I'm looking forward to diving deep into more non-fiction books.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✨ I journaled every single day
&lt;/h3&gt;

&lt;p&gt;After watching a thousand youtube videos, I got inspired to start journaling. In the past year alone, I incorporated different techniques and prompts for journaling. Finally, at the end of 2022, I figured out a method that works well for me.&lt;/p&gt;

&lt;p&gt;I'd highly recommend getting a &lt;a href="https://www.amazon.com.au/Modern-One-Line-Day-Five-Year/dp/1452164622/ref=pd_bxgy_img_sccl_1/357-2686103-2137349?pd_rd_w=XYT7Q&amp;amp;content-id=amzn1.sym.a30612ba-4ff5-4362-b7a7-e874eb18a520&amp;amp;pf_rd_p=a30612ba-4ff5-4362-b7a7-e874eb18a520&amp;amp;pf_rd_r=YKF1DKS2YJWGZZ2EYWZZ&amp;amp;pd_rd_wg=p5Udc&amp;amp;pd_rd_r=6ad68671-a72d-4890-b6ac-1f4e4d7bc834&amp;amp;pd_rd_i=1452164622&amp;amp;psc=1"&gt;5-year journal&lt;/a&gt; notebook for anyone who wants to start journaling. It only allows 3 - 4 lines to write but that's enough to capture the highlight of the day without much effort. Happy Journaling!&lt;/p&gt;

&lt;h3&gt;
  
  
  ✨ I started my fitness journey
&lt;/h3&gt;

&lt;p&gt;The highlight of the year. I've been trying to stay fit by trying different activities on and off like yoga, dancing, boxing, weights, etc. This year, I've finally established a workout routine that works well for me which includes predominantly lifting weights and running, every single day. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;PS: I now have a newfound love for running and bouldering 🧗‍♀️&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✨ Bummers
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Bought a 2022 planner but hardly used it 🙅‍♀️📓&lt;/li&gt;
&lt;li&gt;Not being active in webdev community 😿&lt;/li&gt;
&lt;li&gt;Didn't read 50 books as I planned and marked in GoodReads.&lt;/li&gt;
&lt;li&gt;Underestimated the effort required and was being over-optimistic about time.&lt;/li&gt;
&lt;li&gt;Didn't realize time is limited and worked on tasks that didn't contribute to my goals (Busy, but not productive ⌛️).&lt;/li&gt;
&lt;li&gt;Wanted to write more blog posts.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✨ Lessons learned
&lt;/h3&gt;

&lt;p&gt;Setbacks are inevitable. Mistakes don't define us but what we learn from them does.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Work on Essentialism

&lt;ul&gt;
&lt;li&gt;Setting realistic goals.&lt;/li&gt;
&lt;li&gt;Work on planning and prioritization.&lt;/li&gt;
&lt;li&gt;Be thorough and produce quality work and content.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Focus on one thing at a time.&lt;/li&gt;
&lt;li&gt;Being busy is different from being productive.&lt;/li&gt;
&lt;li&gt;Discipline is the key to freedom. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✨ What's in store for 2023
&lt;/h3&gt;

&lt;p&gt;I'm not doing any resolutions this year, instead, I've set some goals for which I've mapped out some systems to follow through.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Be more active in webdev community(&lt;a href="https://twitter.com/ruphaaganesh"&gt;Twitter&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/ruphaaganesh/"&gt;LinkedIn&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Build more projects and codepens in public.&lt;/li&gt;
&lt;li&gt;Create more content.&lt;/li&gt;
&lt;li&gt;Read 30 books this year.&lt;/li&gt;
&lt;li&gt;Travel local. Do more adventurous stuff(hiking, canyoning 😉).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  End credits
&lt;/h2&gt;

&lt;p&gt;If I had to describe 2022 in one word, I'd say &lt;strong&gt;"Learning"&lt;/strong&gt;. I'm grateful for having had tons of learning opportunities this year. &lt;br&gt;
I'm thrilled and excited for 2023, we have the whole year ahead of us full of potential and possibilities. &lt;/p&gt;

&lt;p&gt;If anything the past couple of years has taught us, it is uncertainty. Cherish every single day and be grateful for every single thing we have.&lt;/p&gt;

&lt;p&gt;That's all folks. Thanks for staying till the end. I wish you all a stunning year ahead! See you soon 👋&lt;/p&gt;

&lt;p&gt;Cheers 🥂&lt;/p&gt;

</description>
      <category>yearinreview</category>
    </item>
    <item>
      <title>14 tips to Google like a pro</title>
      <dc:creator>Ruphaa</dc:creator>
      <pubDate>Sat, 23 Oct 2021 09:00:10 +0000</pubDate>
      <link>https://dev.to/ruphaa/14-tips-to-google-like-a-pro-14jo</link>
      <guid>https://dev.to/ruphaa/14-tips-to-google-like-a-pro-14jo</guid>
      <description>&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%2F9350nmpkofqgrqikpqx5.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%2F9350nmpkofqgrqikpqx5.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google is one of the most powerful tools, and believe it or not, Googling is one of the most important skills out there. Here are some handy tips to master it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tip #1: Search for an exact word or phrase
&lt;/h3&gt;

&lt;p&gt;Use &lt;code&gt;quotes&lt;/code&gt; to search for an exact word or phrase.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;what is kubernetes&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634967599216%2FE0irWd1ar.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634967599216%2FE0irWd1ar.png" alt="Screen Shot 2021-10-23 at 4.39.30 pm.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tip #2: Excluding a word
&lt;/h3&gt;

&lt;p&gt;The minus sign allows you to specify words that shouldn’t appear in your results. Use &lt;code&gt;-&lt;/code&gt; to exclude words.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;hover&lt;/span&gt; &lt;span class="nx"&gt;over&lt;/span&gt; &lt;span class="nx"&gt;an&lt;/span&gt; &lt;span class="nx"&gt;element&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;css&lt;/span&gt;
&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634864533073%2F5UTRGZNFT.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634864533073%2F5UTRGZNFT.png" alt="Screen Shot 2021-10-22 at 12.02.05 pm.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tip #3: Site search
&lt;/h3&gt;

&lt;p&gt;The site: operator allows you to perform a search within the specified site.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;site&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;geeksforgeeks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;org&lt;/span&gt; &lt;span class="nx"&gt;merge&lt;/span&gt; &lt;span class="nx"&gt;sort&lt;/span&gt;
&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634908006159%2FUntPc3sumn.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634908006159%2FUntPc3sumn.png" alt="Screen Shot 2021-10-23 at 12.06.34 am.png"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Keep a Domain Out of Search:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tired of seeing Wikipedia articles on your search results? &lt;br&gt;
Use &lt;code&gt;-site:wikipedia.org&lt;/code&gt; before your search term to remove results from that site.&lt;/p&gt;
&lt;h3&gt;
  
  
  Tip #4: Asterisk(*)
&lt;/h3&gt;

&lt;p&gt;The asterisk is a wildcard that can match any word. Use &lt;code&gt;*&lt;/code&gt; for missing words or phrases.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;build&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;todo&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="kd"&gt;with&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Tip #5: File type
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;filetype:&lt;/code&gt; operator allows you to search for files specific to a type. &lt;br&gt;
Some available types: &lt;code&gt;pdf, ppt, doc, xls&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;filetype&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;pdf&lt;/span&gt; &lt;span class="nx"&gt;how&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;learn&lt;/span&gt; &lt;span class="nx"&gt;react&lt;/span&gt;
&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634864295404%2FJQbC76Tml.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634864295404%2FJQbC76Tml.png" alt="Screen Shot 2021-10-22 at 11.58.09 am.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tip #6: Word definitions
&lt;/h3&gt;

&lt;p&gt;Use the following search trick to find an inline definition:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;define&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;machine&lt;/span&gt; &lt;span class="nx"&gt;learning&lt;/span&gt;
&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634907038686%2FmJMMkxlpf.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634907038686%2FmJMMkxlpf.png" alt="Screen Shot 2021-10-22 at 11.50.32 pm.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tip #7: Use &lt;code&gt;~&lt;/code&gt; to search for a word and all its synonyms
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;How&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;increase&lt;/span&gt; &lt;span class="nx"&gt;font&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;size&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;paragraph&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="nx"&gt;tag&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Tip #8: Use &lt;code&gt;OR&lt;/code&gt; to perform multiple searches
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;how&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;code&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nx"&gt;C&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt; &lt;span class="nx"&gt;OR&lt;/span&gt; &lt;span class="nx"&gt;how&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;program&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nx"&gt;C&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Tip #9: Related
&lt;/h3&gt;

&lt;p&gt;Use &lt;code&gt;related&lt;/code&gt; to finding sites that are similar to the specified site.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;related&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;udemy&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;com&lt;/span&gt;
&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634907286761%2FRwDNG0nsA.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634907286761%2FRwDNG0nsA.png" alt="Screen Shot 2021-10-22 at 11.54.39 pm.png"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Search for a cached website:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cache:epictutorials.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Tip #10: Number range
&lt;/h3&gt;

&lt;p&gt;Use &lt;code&gt;...&lt;/code&gt; to search within a range of numbers&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;Updated&lt;/span&gt; &lt;span class="nx"&gt;css&lt;/span&gt; &lt;span class="nx"&gt;course&lt;/span&gt; &lt;span class="mi"&gt;2020&lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="mi"&gt;2021&lt;/span&gt;
&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634907907846%2Fn_ad-uiXp.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634907907846%2Fn_ad-uiXp.png" alt="Screen Shot 2021-10-23 at 12.05.01 am.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tip #11: Time range
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;javascript&lt;/span&gt; &lt;span class="nx"&gt;after&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;2021&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;javascript&lt;/span&gt; &lt;span class="nx"&gt;before&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;2019&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Tip #12: &lt;code&gt;+&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Using &lt;code&gt;+&lt;/code&gt; will return pages that contain both words&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;JavaScript&lt;/span&gt; &lt;span class="nx"&gt;Oops&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;React&lt;/span&gt;
&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634908341520%2FYVXGLXH9-.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634908341520%2FYVXGLXH9-.png" alt="Screen Shot 2021-10-23 at 12.12.12 am.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tip #13: AND
&lt;/h3&gt;

&lt;p&gt;Use to get results that must contain some given words.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="nx"&gt;AND&lt;/span&gt; &lt;span class="nx"&gt;CSS&lt;/span&gt;
&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634908411342%2FU0Hcb0a39.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634908411342%2FU0Hcb0a39.png" alt="Screen Shot 2021-10-23 at 12.13.24 am.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tip #14: All words In text
&lt;/h3&gt;

&lt;p&gt;If you want to find a web page that includes every word of your search query, you can put &lt;code&gt;allintext:&lt;/code&gt; followed by the words and/or phrases you want to search.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;allintext&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;CSS&lt;/span&gt; &lt;span class="nx"&gt;fundamentals&lt;/span&gt; &lt;span class="nx"&gt;like&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;box&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;cascade&lt;/span&gt; &lt;span class="nx"&gt;and&lt;/span&gt; &lt;span class="nx"&gt;specificity&lt;/span&gt;
&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634908496270%2FYYV5r9nmD.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634908496270%2FYYV5r9nmD.png" alt="Screen Shot 2021-10-23 at 12.14.49 am.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Bonus tips
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Translations
&lt;/h4&gt;

&lt;p&gt;You can use Google search to translate words and phrases from one language to another.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;translate&lt;/span&gt; &lt;span class="nx"&gt;perfect&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;Italian&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Timer
&lt;/h4&gt;

&lt;p&gt;You can pull up a timer within Google by typing an amount of time followed by the word timer.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="nx"&gt;min&lt;/span&gt; &lt;span class="nx"&gt;timer&lt;/span&gt;
&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634862824554%2F5qd2W3sY3.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634862824554%2F5qd2W3sY3.png" alt="Screen Shot 2021-10-22 at 11.33.39 am.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Stopwatch
&lt;/h4&gt;

&lt;p&gt;You can also pull up a stopwatch within Google simply by typing stopwatch.&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634862715545%2FIakPCmBSO.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634862715545%2FIakPCmBSO.png" alt="Screen Shot 2021-10-22 at 11.31.48 am.png"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Further reference:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://ahrefs.com/blog/google-advanced-search-operators/" rel="noopener noreferrer"&gt;Google Search Operators: The Complete List (42 Advanced Operators)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://markodenic.com/use-google-like-a-pro/" rel="noopener noreferrer"&gt;Use Google like a pro&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.google.com/advanced_search" rel="noopener noreferrer"&gt;Google's Advanced search&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Thanks for reading, hope you all enjoyed this post. Stay tuned for more tips and tricks 🥳 &lt;/p&gt;

&lt;p&gt;Stay safe and stay happy!&lt;/p&gt;

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

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>productivity</category>
      <category>career</category>
    </item>
    <item>
      <title>An Evergreen Guide to Hacktoberfest</title>
      <dc:creator>Ruphaa</dc:creator>
      <pubDate>Sun, 17 Oct 2021 23:55:41 +0000</pubDate>
      <link>https://dev.to/ruphaa/an-evergreen-guide-to-hacktoberfest-1oa9</link>
      <guid>https://dev.to/ruphaa/an-evergreen-guide-to-hacktoberfest-1oa9</guid>
      <description>&lt;p&gt;Hacktoberfest is a month-long worldwide open-source festival, run by DigitalOcean and open to everyone in our global community. Anybody can participate in Hacktoberfest, not necessarily to have any experience or knowledge in coding. Let's dive more into it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Hacktoberfest?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;An open source community event in October.&lt;/li&gt;
&lt;li&gt;People gather to learn and share new skills by contributing to and supporting open source projects.&lt;/li&gt;
&lt;li&gt;Participants get to win cool swags like t-shirts and stickers.&lt;/li&gt;
&lt;li&gt;An open source project is where anybody can contribute to it through any means regardless of their connection to the project owners or the project itself.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;The main aim of Hacktoberfest is to encourage people to contribute to open source projects.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Prerequisites:
&lt;/h2&gt;

&lt;p&gt;Basic knowledge of Git and GitHub since the contributions for Hacktoberfest takes place through it.&lt;/p&gt;

&lt;p&gt;Learn Git and GitHub in no time with these resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=RGOj5yH7evk" rel="noopener noreferrer"&gt;Git and GitHub for Beginners - Crash Course&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=8JJ101D3knE" rel="noopener noreferrer"&gt;Git Tutorial for Beginners: Learn Git in 1 Hour&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github" rel="noopener noreferrer"&gt;Kent C Dodds' - How to Contribute to an Open Source Project on GitHub&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://guides.github.com/activities/hello-world/" rel="noopener noreferrer"&gt;Github Guide&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to get started?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Register for Hacktoberfest&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Go to the official &lt;a href="https://hacktoberfest.digitalocean.com/register" rel="noopener noreferrer"&gt;Hacktoberfest&lt;/a&gt; website and register yourself with Github or Gitlab.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Find repositories for contributions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Repositories with &lt;code&gt;Hacktoberfest&lt;/code&gt; label will only be taken into consideration/or counted in as contributions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634472676133%2F5N8q7DmAP.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1634472676133%2F5N8q7DmAP.png" alt="Screen Shot 2021-10-17 at 10.31.52 am.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can find good projects worth contributing on the GitHub page by typing &lt;code&gt;label:hacktoberfest&lt;/code&gt; &lt;code&gt;is:issue&lt;/code&gt; &lt;code&gt;is:open&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some good places to find projects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://hacktosearch.vercel.app/" rel="noopener noreferrer"&gt;Hacktoberfest Search&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hacktoberfest-projects.vercel.app/" rel="noopener noreferrer"&gt;Hacktoberfest Projects&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://goodfirstissue.dev/" rel="noopener noreferrer"&gt;Good First Issue&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Make 4 Hacktoberfest Pull Requests&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make at least 4 PRs by October 31 in any of the Github-hosted repos.&lt;/li&gt;
&lt;li&gt;Find the list of hacktoberfest opt-in projects &lt;a href="https://github.com/topics/hacktoberfest" rel="noopener noreferrer"&gt;here&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Your PR will be counted if they are in the repo with &lt;code&gt;hacktoberfest&lt;/code&gt; label and once merged, approved by a maintainer or labeled with &lt;code&gt;hacktoberfest-accepted&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Check and see whether you’ve qualified&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once you’ve signed up for Hacktoberfest, you can check your progress on the &lt;a href="https://hacktoberfest.digitalocean.com/profile" rel="noopener noreferrer"&gt;Hacktoberfest website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Earn cool prizes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;By participating in Hacktoberfest, you'll gain more open source experience and get the chance to earn some Hacktoberfest swags like t-shirts and yes, they'll be internationally delivered for free.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In Hacktoberfest 2021, DigitalOcean is offering an alternative to their traditional t-shirt prize: a &lt;strong&gt;plant-a-tree&lt;/strong&gt; alternative! While those Hacktoberfest t-shirts are amazing, it always feels good to save the planet.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1) What if my pull requests aren't accepted?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Even if your pull requests aren’t accepted, as long as you open at least 4 pull requests, you’ll earn the shirt.&lt;br&gt;
The only exception would be if the project maintainer chooses to mark your pull request as “invalid”. They may do this if they perceive your pull request to be low effort, or if it contains plagiarism.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) What kinds of pull requests count toward earning the Hacktoberfest shirt?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Any pull request made to a public repo on GitHub will count. The pull request must contain commits you personally made yourself — not automated commits from bots.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4) What if I don’t make at least 4 pull requests by midnight October 31?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As long as you're registered for Hacktoberfest, you’ll still get free stickers in the mail. It’s still worth registering, even if you’re too busy to participate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8 open source projects to contribute to Hacktoberfest:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/api-platform/api-platform" rel="noopener noreferrer"&gt;API Platform&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/chartjs/Chart.js" rel="noopener noreferrer"&gt;Chart.js&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/freeCodeCamp/freeCodeCamp" rel="noopener noreferrer"&gt;FreeCodeCamp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/EbookFoundation/free-programming-books" rel="noopener noreferrer"&gt;Free programming books&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/florinpop17/app-ideas" rel="noopener noreferrer"&gt;App Ideas&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/facebook/docusaurus" rel="noopener noreferrer"&gt;Docusaurus&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/szabgab/awesome-for-non-programmers" rel="noopener noreferrer"&gt;Awesome for non-programmers&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/MunGell/awesome-for-beginners" rel="noopener noreferrer"&gt;Awesome First PR Opportunities&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Further Reference:
&lt;/h2&gt;

&lt;p&gt;&lt;a class="mentioned-user" href="https://dev.to/kentcdodds"&gt;@kentcdodds&lt;/a&gt; - &lt;a href="https://kentcdodds.com/blog/first-timers-only" rel="noopener noreferrer"&gt;First Timers Only&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ayushi Rawat's &lt;a href="https://ayushirawat.com/beginners-guide-to-hacktoberfest-2021" rel="noopener noreferrer"&gt;Beginner's guide to Hacktoberfest 2021&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Catalin Pit's &lt;a href="https://catalins.tech/find-open-source-projects-to-contribute-as-a-beginner" rel="noopener noreferrer"&gt;Find Open Source Projects To Contribute As A Beginner&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a class="mentioned-user" href="https://dev.to/atapas"&gt;@atapas&lt;/a&gt; &lt;a href="https://twitter.com/tapasadhikary/status/1435590663035310086" rel="noopener noreferrer"&gt;8 resources to get you started with open source&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/5t3ph/a-hacktoberfest-project-for-all-web-developers-style-stage-5h2m"&gt;A Hacktoberfest Project For All Web Developers: Style Stage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/devteam/hacktoberfest-2021-is-here-4a3l"&gt;Hacktoberfest 2021 is Here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/miguendes/hacktoberfest-69-beginner-friendly-projects-you-can-contribute-to-2clc"&gt;Hacktoberfest: 69 Beginner-Friendly Projects You Can Contribute To&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://h.daily-dev-tips.com/8-non-technical-ways-to-contribute-to-open-source" rel="noopener noreferrer"&gt;8 Non-technical ways to contribute to open-source&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.blog/2021-10-07-githubs-guide-hacktoberfest-2021/" rel="noopener noreferrer"&gt;GitHub’s guide to Hacktoberfest 2021&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  That's it for today, folks!
&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%2Frqju5jpgzeaumpoduudl.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%2Frqju5jpgzeaumpoduudl.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hopefully, I was able to provide useful information about Hacktoberfest. Happy hacking 👩‍💻👨‍💻&lt;/p&gt;

&lt;p&gt;Thank you all for reading 🥳  Stay safe and happy!&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
      <category>beginners</category>
      <category>opensource</category>
    </item>
    <item>
      <title>5 ways to center a div vertically and horizontally using CSS</title>
      <dc:creator>Ruphaa</dc:creator>
      <pubDate>Sun, 31 May 2020 15:35:34 +0000</pubDate>
      <link>https://dev.to/ruphaa/5-ways-to-center-a-div-vertically-and-horizontally-using-css-3i60</link>
      <guid>https://dev.to/ruphaa/5-ways-to-center-a-div-vertically-and-horizontally-using-css-3i60</guid>
      <description>&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%2Fw6g6lk4ysz6cy3bv9cg2.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%2Fw6g6lk4ysz6cy3bv9cg2.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every developer should have come across this task of centering a div in their lifetime at least once or every single day. We all have our handy technique but for beginners, it might be frustrating at times.&lt;br&gt;
 &lt;br&gt;
In this article, I have compiled a list of different CSS tricks to center a div horizontally and vertically center on a page, choose a trick or two, and make it your favorite.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;Method 1: Using Flex&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I wanted this technique to be on top since it's my favorite of all. In this trick, all the CSS properties are defined under the parent container.&lt;/p&gt;

&lt;p&gt;We define the parent with &lt;strong&gt;&lt;em&gt;display: flex&lt;/em&gt;&lt;/strong&gt; property along with &lt;strong&gt;&lt;em&gt;justify-content&lt;/em&gt;&lt;/strong&gt;(horizontal placement by default) and &lt;strong&gt;&lt;em&gt;align-items&lt;/em&gt;&lt;/strong&gt;(vertical placement by default) center. These properties come with Flex specifications. One glitch to make this work is by providing a fixed width and height to the parent.&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%2Fd1yboppbijfik58nm8ax.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%2Fd1yboppbijfik58nm8ax.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;Method 2: Using Grid&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Using CSS Grid, we can achieve our goal in two ways. First, using &lt;strong&gt;&lt;em&gt;'place-items'&lt;/em&gt;&lt;/strong&gt; properties and second is by using &lt;strong&gt;&lt;em&gt;'align and justify self'&lt;/em&gt;&lt;/strong&gt;. Yet again, these properties are exclusive to CSS Grid.&lt;/p&gt;

&lt;p&gt;a) Using &lt;strong&gt;&lt;em&gt;place-items&lt;/em&gt;&lt;/strong&gt;, we provide the rules to the parent, and it alone does the magic. We give the parent &lt;strong&gt;&lt;em&gt;'display: grid'&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;'place-items: center'&lt;/em&gt;&lt;/strong&gt; and there you go, things get super centered.&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%2Fpdg93ejwzoese5dpwu4d.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%2Fpdg93ejwzoese5dpwu4d.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;b) Using &lt;strong&gt;&lt;em&gt;'justify and align-self'&lt;/em&gt;&lt;/strong&gt;, we provide the parent container with &lt;strong&gt;&lt;em&gt;'display: grid'&lt;/em&gt;&lt;/strong&gt; property, and the main properties are given to the child container - &lt;strong&gt;&lt;em&gt;'align-self'&lt;/em&gt;&lt;/strong&gt;(vertically placement) and &lt;strong&gt;&lt;em&gt;'justify-self'&lt;/em&gt;&lt;/strong&gt;(horizontal placement) props are given center as value.&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%2Fuerf3tkkj37j7hsvllt6.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%2Fuerf3tkkj37j7hsvllt6.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;Method 3: Using CSS Positioning and CSS transform&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This is one of the old school methods we follow to center elements on a page. We make the child container's position &lt;strong&gt;&lt;em&gt;absolute&lt;/em&gt;&lt;/strong&gt; to the parent container and move the child container to 50% from the top and left of the parent.&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%2F18f9nnunoe6iwxu1boa0.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%2F18f9nnunoe6iwxu1boa0.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;Method 4: Using CSS Margin&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Yet another old school method works like a charm in all the browsers. All we have to do is define &lt;strong&gt;&lt;em&gt;'margin: 0 auto'&lt;/em&gt;&lt;/strong&gt; style to the child container. I've personally faced some inconsistencies while trying this method, so I always add extra properties to center the elements.&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%2Fcnvo7unu19clnn3b55nx.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%2Fcnvo7unu19clnn3b55nx.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;Method 5: Using CSS Positioning&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This is one of the common methods followed since the birth of &lt;strong&gt;&lt;em&gt;'CSS Positioning'&lt;/em&gt;&lt;/strong&gt;. We make the child container &lt;strong&gt;&lt;em&gt;'absolute'&lt;/em&gt;&lt;/strong&gt; to the parent and define top, left, right, and bottom properties '0' along with &lt;strong&gt;&lt;em&gt;'margin: auto'&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: CSS Inset - It's a shorthand for top, left, right and bottom property(currently this property is supported in Firefox only)&lt;/p&gt;

&lt;p&gt;inset:  2px 3px 4px 5px /* top right bottom left */&lt;/p&gt;
&lt;/blockquote&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%2F90ohfgy77bha7b7bzwbd.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%2F90ohfgy77bha7b7bzwbd.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;Bonus Method: Using CSS Table&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I know we all use the &lt;strong&gt;&lt;em&gt;'CSS table'&lt;/em&gt;&lt;/strong&gt; widely across our application, which comes with plenty of table properties. I was surprised to find that we can use table property to center the content and elements in a container and it gets better we can do that in two ways.&lt;/p&gt;

&lt;p&gt;We have to provide &lt;strong&gt;&lt;em&gt;'display: table'&lt;/em&gt;&lt;/strong&gt; to the wrapper(which is a level above the parent), then we use &lt;strong&gt;&lt;em&gt;'display: table-cell'&lt;/em&gt;&lt;/strong&gt; property in the parent.&lt;/p&gt;

&lt;p&gt;The difference in two ways comes with child properties - one, is by using &lt;strong&gt;&lt;em&gt;'margin'&lt;/em&gt;&lt;/strong&gt; property and the other using &lt;strong&gt;&lt;em&gt;'display: inline-block'&lt;/em&gt;&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%2Fml1ei0nxos3tydyf4hig.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%2Fml1ei0nxos3tydyf4hig.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fk6b71bct2q5acxti0x4q.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%2Fk6b71bct2q5acxti0x4q.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have reached the end of this article. I have attached a Codepen below, where you can find all of the above-mentioned tricks in one place, play around with it and share over here if you follow any cool tricks to center things.&lt;/p&gt;

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

&lt;p&gt;I hope you find this article helpful and informative. If you like this article, give me a thumbs up 👍 Don't forget to bookmark it for future reference 🔖&lt;/p&gt;

&lt;p&gt;Thanks for reading 🤓&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Stop Waiting and Start Writing ✍🏻</title>
      <dc:creator>Ruphaa</dc:creator>
      <pubDate>Sun, 24 May 2020 15:26:31 +0000</pubDate>
      <link>https://dev.to/ruphaa/stop-waiting-and-start-writing-1jp1</link>
      <guid>https://dev.to/ruphaa/stop-waiting-and-start-writing-1jp1</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I7Ugf6yh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/c7ot7bxxur6q6mtncp6g.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I7Ugf6yh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/c7ot7bxxur6q6mtncp6g.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My blogging has been quite infrequent. I used to publish a post once a year. That's it. That's not the whole, I list down around 100 ideas every year, which never come out in any form. This year, I took a resolution to break this jinx. I will be turning all my tech notes, tips, and tricks I learn every day into blog posts.&lt;/p&gt;

&lt;p&gt;This place will be the curation of my learnings and I can get back to it anytime when I want to have a glance at the topics.&lt;/p&gt;

&lt;p&gt;Recently, I found this interesting article &lt;a href="https://www.swyx.io/writing/learn-in-public-hack/"&gt;'Learning in Public'&lt;/a&gt; written by &lt;a href="https://twitter.com/swyx"&gt;Shawn&lt;/a&gt;. This one post was enough to shun away my fears in writing down my thoughts. I also found &lt;a href="https://twitter.com/flaviocopes"&gt;Flavio&lt;/a&gt;'s &lt;a href="https://www.freecodecamp.org/news/every-developer-should-have-a-blog-heres-why-and-how-to-stick-with-it-5fd55a247fbf/"&gt;blog post&lt;/a&gt; motivating to start my blogging journey.&lt;/p&gt;

&lt;p&gt;I have still got the rest of the year in front of me to enrich my writing experience. I will be consistently blogging and will be sharing my upcoming posts every week. &lt;/p&gt;

&lt;p&gt;I'm figuring out the ways to start my blogging journey actively, there are 50–50 chances of me either getting successful or dropping off the blogging midway. Either way, let's face it, three things are not gonna change - Consistent writing, planning the ideas up front, and building up a writing routine.&lt;/p&gt;

&lt;p&gt;I'm gonna list down the upcoming posts that I've been writing and will be coming out soon. Some posts might be teeny tiny ones and some might be bigger than dumbledore's beard, but I will try my best to not bore the audience.&lt;/p&gt;

&lt;p&gt;Upcoming Blog Posts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;5 ways to center a div element in a container&lt;/li&gt;
&lt;li&gt;5 Productivity Apps  every Software Engineers should use&lt;/li&gt;
&lt;li&gt;5 chrome extensions useful for every developer&lt;/li&gt;
&lt;li&gt;7 tips I follow to write a blog post&lt;/li&gt;
&lt;li&gt;How to create a Google Search Page in Neuomorphic design&lt;/li&gt;
&lt;li&gt;CSS Function() -  Everything to know about linear-gradient&lt;/li&gt;
&lt;li&gt;5 tips to become a pro in searching on Google&lt;/li&gt;
&lt;li&gt;How to create a responsive image using min() and max() function&lt;/li&gt;
&lt;li&gt;HTML tips and tricks - Part 1 &lt;/li&gt;
&lt;li&gt;Advanced Javascript Concepts - Part 1 (Notes on Andrei Neagoie's Udemy Course) &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Hopefully, I stay consistent in my writing journey. Thanks for reading! 😀&lt;/p&gt;

&lt;p&gt;Follow me for more interesting articles. If you like this post, give me a thumbs up 🙌&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>writing</category>
    </item>
    <item>
      <title>CSS Subgrid — Level 2 of CSS Grid</title>
      <dc:creator>Ruphaa</dc:creator>
      <pubDate>Sun, 21 Apr 2019 07:45:22 +0000</pubDate>
      <link>https://dev.to/ruphaa/css-subgrid-level-2-of-css-grid-1na0</link>
      <guid>https://dev.to/ruphaa/css-subgrid-level-2-of-css-grid-1na0</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhq0nhzud05dhxahux4de.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhq0nhzud05dhxahux4de.png" alt="Title image" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Something amazing is about to happen to grid layouts. The level 2 specification of CSS grid, called &lt;strong&gt;CSS Subgrid&lt;/strong&gt;, is coming to browsers soon and it's gonna take the already awesome CSS Grid to a whole new level.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What's all the fuss about?
&lt;/h2&gt;

&lt;p&gt;Recently, I came across &lt;a href="https://twitter.com/rachelandrew" rel="noopener noreferrer"&gt;Rachel Andrew&lt;/a&gt;'s article where she introduced CSS Subgrid and I got super excited and thrilled about the possibilities that come along with CSS Subgrid.&lt;/p&gt;

&lt;p&gt;In short — CSS Subgrid makes is possible to construct nested grids within CSS Grid.&lt;/p&gt;

&lt;p&gt;Right now (without subgrid) the tracks of the nested grids have no relationship to the tracks on the parent grid. To put it in simple terms — we have a parent container with &lt;code&gt;display: grid&lt;/code&gt; property, therefore its children become grid items. These grid items can also be made the grid containers. But &lt;strong&gt;the grid tracks defined for the parent grid container won't be aligned with the grid tracks of the child grid containers since they both are independent of the layout&lt;/strong&gt; of its content. In some cases, &lt;strong&gt;it is necessary for the content and layout of multiple grid items to align with each other.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With CSS Subgrid, &lt;strong&gt;a grid container can inherit the definition of its rows and columns from its parent grid container&lt;/strong&gt;, by making the grid item a subgrid. Subgrid provides the ability to pass the properties of the grid to its nested elements and content-based sizing information back to the parent grid.&lt;/p&gt;

&lt;p&gt;These are the two main wins of CSS Subgrid —&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A subgrid can use the grid tracks defined on the parent - for rows, columns or both.&lt;/li&gt;
&lt;li&gt;A subgrid will also inherit the gaps from the parent. The sizing of the items in the subgrid can change the size of the parent tracks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here's an example of how nested grid works without subgrid —&lt;/p&gt;

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

&lt;p&gt;But what if we wanted the tracks of nested grid items to be aligned with the tracks of the parent grid?&lt;/p&gt;

&lt;p&gt;This is where subgrid comes to the rescue. When we add the property &lt;code&gt;grid-template-rows: subgrid&lt;/code&gt; to the nested grid items, they inherit the row property of the parent grid and align with each other automatically.&lt;/p&gt;

&lt;p&gt;This is how it should look if the property is applied.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0lut4wlF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.ibb.co/2Pr78Mk/Screen-Shot-2019-04-20-at-7-30-26-PM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0lut4wlF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.ibb.co/2Pr78Mk/Screen-Shot-2019-04-20-at-7-30-26-PM.png" alt="CSS Subgrid" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: Currently, there is no browser support for subgrid so I have created an illustration to explain the behavior.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Subgrid for the columns and rows
&lt;/h2&gt;

&lt;p&gt;In this case, subgrid will be on both columns and rows. This means that both the dimensions are aligned to the tracks of the parent grid.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpujkfdvqrrub73r4c4ho.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpujkfdvqrrub73r4c4ho.png" alt="Subgrid-Column-Row" width="800" height="419"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;h2&gt;
  
  
  Subgrid for columns only
&lt;/h2&gt;

&lt;p&gt;In this case, subgrid is used on columns, meaning there will be an implicit track for rows alone in the grid item but its column tracks are aligned with the parent grid.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F78gjzo2on3yf2ji6s3pi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F78gjzo2on3yf2ji6s3pi.png" alt="Subgrid-Column" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Subgrid for rows only
&lt;/h2&gt;

&lt;p&gt;In this case, subgrid is applied on rows, which aligns with the row tracks of the parent grid, but its column sizing is independent of the parent grid.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsy5le10kj9lvrgmb7qxt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsy5le10kj9lvrgmb7qxt.png" alt="Subgrid-Row" width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.smashingmagazine.com/2018/07/css-grid-2/" rel="noopener noreferrer"&gt;CSS Grid Level 2: Here Comes Subgrid&lt;/a&gt;&lt;br&gt;
   &lt;a href="https://noti.st/rachelandrew/g2qkOz/grids-all-the-way-down#s12eg0L" rel="noopener noreferrer"&gt;Grids All The Way Down&lt;/a&gt;&lt;br&gt;
   &lt;a href="https://www.w3.org/TR/css-grid-2/" rel="noopener noreferrer"&gt;CSS Grid Layout Module Level 2&lt;/a&gt;&lt;br&gt;
   &lt;a href="https://dev.to/kenbellows/why-we-need-css-subgrid-53mh"&gt;Why we need CSS subgrid&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;I am eagerly waiting for browsers to support subgrid &lt;em&gt;(hopefully soon)&lt;/em&gt; so I can play around with it and figure out interesting use cases.&lt;/p&gt;

&lt;p&gt;Feedbacks? Leave a comment :)&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>ux</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Everything about Event Handlers and Event Propagation</title>
      <dc:creator>Ruphaa</dc:creator>
      <pubDate>Fri, 01 Feb 2019 13:03:37 +0000</pubDate>
      <link>https://dev.to/ruphaa/everything-about-event-handlers-and-event-propagation-47a8</link>
      <guid>https://dev.to/ruphaa/everything-about-event-handlers-and-event-propagation-47a8</guid>
      <description>&lt;p&gt;This has been written over a hundred times before and probably holds more than a hundred answers on StackOverflow. But over time, going through different articles and answers, I curated the important parts and writing it down as this post.&lt;/p&gt;

&lt;h1&gt;
  
  
  Event Handling
&lt;/h1&gt;

&lt;p&gt;There are 3 ways to attach a handler to an event in JavaScript.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTML Attribute&lt;/li&gt;
&lt;li&gt;DOM Property&lt;/li&gt;
&lt;li&gt;addEventListener()&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  HTML attribute
&lt;/h2&gt;

&lt;p&gt;This is the old school way of attaching a handler to an event by adding an attribute to the DOM element.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Remember, a node can only have one onclick attribute. So with this approach, only one handler can be registered to an event.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"el"&lt;/span&gt; &lt;span class="na"&gt;onclick=&lt;/span&gt;&lt;span class="s"&gt;"kaboom()"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  DOM property
&lt;/h2&gt;

&lt;p&gt;This is the &lt;em&gt;JavaScripty&lt;/em&gt; way of creating a DOM node on the fly, adding an attribute to it and attaching a handler to the attribute. Since this is almost the same as the previous approach, &lt;em&gt;only one handler can be registered to an event&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
  &lt;span class="nx"&gt;el&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#el&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="nx"&gt;el&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;onclick&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;clickMe&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  addEventListener() 🔥
&lt;/h2&gt;

&lt;p&gt;This is the modern way of binding handlers to the event. We can bind any number of handlers with the event and all these handlers will be invoked when that event happens.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
  &lt;span class="nx"&gt;el&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Some code here that goes KABOOM!&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Event Behaviours
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;preventDefault()&lt;/li&gt;
&lt;li&gt;Event Bubbling&lt;/li&gt;
&lt;li&gt;Event Capturing&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  preventDefault()
&lt;/h2&gt;

&lt;p&gt;There are a handful or pre-defined events that have default actions associated with them. For example,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a link by default takes you to the link’s target.&lt;/li&gt;
&lt;li&gt;if you press down arrow, page scrolls down.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In these cases, the &lt;strong&gt;custom handlers associated with these elements will get invoked before the default actions&lt;/strong&gt; followed by the default actions. If you want to completely unbind this default behaviour from the element, you can call the &lt;code&gt;event.preventDefault()&lt;/code&gt; in your handler.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: This has got nothing to stop the event from bubbling up the DOM.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Event Bubbling &amp;amp; Event Capturing
&lt;/h2&gt;

&lt;p&gt;Events in DOM usually get propagated as a stack of events nested in the web browser.&lt;/p&gt;

&lt;h3&gt;
  
  
  Event Bubbling
&lt;/h3&gt;

&lt;p&gt;Event bubbling can be better explained with an example.&lt;/p&gt;

&lt;p&gt;Let's take a nested DOM structure like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"parent"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"child"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If there are handlers attached to both &lt;code&gt;#parent&lt;/code&gt; and &lt;code&gt;#child&lt;/code&gt; divs,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;when the child is clicked, due to the bubbling nature of events, first the handler for the &lt;code&gt;#child&lt;/code&gt; div is invoked and then the event propagates to &lt;code&gt;#parent&lt;/code&gt; div and its handler will be invoked.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, &lt;strong&gt;child first and parent next&lt;/strong&gt; as events bubble from &lt;strong&gt;bottom to top&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Event Capturing
&lt;/h3&gt;

&lt;p&gt;Event capturing is more of capturing the event in the DOM and handing it over to event handlers for execution. Events are captured from top-down, meaning outermost element is captured first and propagated to the inner elements. Once the events are captured, bubbling of events start from the inner-most elements.&lt;/p&gt;

&lt;h3&gt;
  
  
  stopPropagation()
&lt;/h3&gt;

&lt;p&gt;You can stop the bubbling of events from child to parent by calling &lt;code&gt;event.stopPropagation()&lt;/code&gt; in the child event handler.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;childHandler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stopPropagation&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Removing an event listener
&lt;/h1&gt;

&lt;p&gt;You can remove an event listener from an element by invoking &lt;code&gt;removeEventListener()&lt;/code&gt; on the event, which accepts the event name and handler name as arguments.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;handleClick&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// go KABOOM!&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;handleClick&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;removeEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;handleClick&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Note: Do not use anonymous handler method. You should define the function outside the callback and then reference it in back in the removeEventListener callback.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// this is wrong as you cannot remove this event listener&lt;/span&gt;
&lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="cm"&gt;/* go KABOOM! */&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it folks. Pl drop a comment if you think this post could be improved in any way.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>2018: Year in Review</title>
      <dc:creator>Ruphaa</dc:creator>
      <pubDate>Sat, 05 Jan 2019 05:16:34 +0000</pubDate>
      <link>https://dev.to/ruphaa/2018-year-in-review-584p</link>
      <guid>https://dev.to/ruphaa/2018-year-in-review-584p</guid>
      <description>&lt;p&gt;Another exciting year has started. I’d like to take a moment to reflect on everything that happened in 2018 as it was an exciting year for me, both career-wise and personally.&lt;/p&gt;

&lt;p&gt;This is my first blog post, like my first ever blog post. So take it easy on me.&lt;/p&gt;

&lt;h1&gt;
  
  
  Career
&lt;/h1&gt;

&lt;p&gt;I started developing a keen interest in front-end nuances and decided to look for opportunities where I could nourish and improve my front-end skills. I quit my old job and landed a Frontend focussed role in an amazing company. Everyday I see myself becoming a better dev than the previous day.&lt;/p&gt;

&lt;h1&gt;
  
  
  Talks and Meetups
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;I attended a meetup on Frontend Frameworks war - by Facebook Developer Circle, Chennai.&lt;/li&gt;
&lt;li&gt;Along with 5 other folks I gave a talk on “Virtual and Augmented Reality” and “Pillars of Web - HTML, CSS and JS” to undergrad students.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Achievements Unlocked
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Bagged first place in a hackathon&lt;/li&gt;
&lt;li&gt;Completed hacktoberfest and kick started my open source contributions. (Can’t wait to receive my hacktoberfest goodies)&lt;/li&gt;
&lt;li&gt;Took part in Codevember (first timer here). I got to see a lot of codepen inspirations and I’m totally into it now.&lt;/li&gt;
&lt;li&gt;Created a few CSS illustrations, mostly inspired from dribbble shots. Here’s my handle for the curious - &lt;a href="https://codepen.io/ruphaa/"&gt;https://codepen.io/ruphaa/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Health and Fitness
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Started working out and I hit the gym 5 times a week now.&lt;/li&gt;
&lt;li&gt;Took up 30 days yoga challenge and completed successfully. Yoga magically gives you a sense of inner peace, boosts up your confidence and improves your focus.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Bummers
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;I took up the &lt;code&gt;#100DaysOfCode&lt;/code&gt; challenge but somewhere down the line I got side-tracked.&lt;/li&gt;
&lt;li&gt;I started Codevember challenge with all fury but ended up not completing it.&lt;/li&gt;
&lt;li&gt;Planned to build a portfolio but didn’t make much progress in that.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Lessons Learnt
&lt;/h1&gt;

&lt;p&gt;Setbacks are inevitable. But what we learn from it is what’s important. I set a lot of luxurious goals but didn’t plan and manage my time accordingly. So I’m gonna try and focus on&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Setting realistic goals&lt;/li&gt;
&lt;li&gt;Focussing on one thing at a time&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  What’s in store for 2019
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Write more blog posts.&lt;/li&gt;
&lt;li&gt;Build a portfolio&lt;/li&gt;
&lt;li&gt;Listen to 3 podcasts every week&lt;/li&gt;
&lt;li&gt;Read 1 blog post every day&lt;/li&gt;
&lt;li&gt;Create 1 codepen every week&lt;/li&gt;
&lt;li&gt;Complete at least 1 round of &lt;code&gt;#100DaysOfCode&lt;/code&gt; and log it&lt;/li&gt;
&lt;li&gt;Read 10 books&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;2018 was really an amazing year for me. Started the year low but looking back, I am grateful for everything. Not yet over, I am so grateful to have a wonderful mentor &lt;a class="mentioned-user" href="https://dev.to/flexdinesh"&gt;@flexdinesh&lt;/a&gt;
, for all the career guidance and motivation that set me on the right track.&lt;/p&gt;

&lt;p&gt;Have an amazing year ahead!&lt;/p&gt;

</description>
      <category>yearinreview</category>
      <category>webdev</category>
      <category>career</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
