<?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: Abdulrahman Alblooshi</title>
    <description>The latest articles on DEV Community by Abdulrahman Alblooshi (@abdualblooshi).</description>
    <link>https://dev.to/abdualblooshi</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%2F637413%2F46cb8789-5bef-4b11-9a17-1a70ca74a474.jpg</url>
      <title>DEV Community: Abdulrahman Alblooshi</title>
      <link>https://dev.to/abdualblooshi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abdualblooshi"/>
    <language>en</language>
    <item>
      <title>That Time I Installed Linux (Again) 🐧</title>
      <dc:creator>Abdulrahman Alblooshi</dc:creator>
      <pubDate>Sat, 20 Apr 2024 19:08:24 +0000</pubDate>
      <link>https://dev.to/abdualblooshi/that-time-i-installed-linux-again-3bmi</link>
      <guid>https://dev.to/abdualblooshi/that-time-i-installed-linux-again-3bmi</guid>
      <description>&lt;p&gt;Picture this: I just finished a quiz for my super cool Computer Systems Architecture class (which I somehow didn't fail), and I found myself with a free hour. Most people would grab a coffee or scroll through memes, but not me. I decided to install Ubuntu for the 11th time. Why? Maybe for the thrill, or maybe to see if it would finally stick this time. I set up Kubuntu (Ubuntu + KDE) to work alongside Windows, just for fun.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nWMVILe8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://media3.giphy.com/media/v1.Y2lkPTc5MGI3NjExazF5OG9pZHA4eWo3ejV0MGk5MHRva292ZnAxcjA1Yzd0cDN5N2F6aiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/hHxTQkcjmHUTC/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nWMVILe8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://media3.giphy.com/media/v1.Y2lkPTc5MGI3NjExazF5OG9pZHA4eWo3ejV0MGk5MHRva292ZnAxcjA1Yzd0cDN5N2F6aiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/hHxTQkcjmHUTC/giphy.gif" alt="Iron Man" width="245" height="155"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Why Linux Again?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I wasn't planning to ditch Windows completely. I was just curious. But before I knew it, I was putting all these funny-sounding tools on my computer, like oh-my-zsh, Kitty, and Neovim, hoping they'd make coding more fun. I even installed Nvidia drivers, thinking I might play games on Linux. But the only game I opened was Minecraft. Oops!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CC8z2AgM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://media1.giphy.com/media/v1.Y2lkPTc5MGI3NjExd3JmaDlwanp5MnltemN2ejRhMGhqOXU4bTFqOHlncnRqd2YwZHJyNyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/ZPQLVgoXJT7K8/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CC8z2AgM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://media1.giphy.com/media/v1.Y2lkPTc5MGI3NjExd3JmaDlwanp5MnltemN2ejRhMGhqOXU4bTFqOHlncnRqd2YwZHJyNyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/ZPQLVgoXJT7K8/giphy.gif" alt="Minecraft" width="192" height="183"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I made my Linux look like a Mac because if you can't have a Mac, why not pretend, right? Turns out, this made using Linux way better. Three months later, I actually liked Linux more than Windows for getting stuff done. Windows just felt too bloated and annoying with all its updates and pop-ups.&lt;/p&gt;

&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%2Fhh6qgbucjomqmqy4ashh.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%2Fhh6qgbucjomqmqy4ashh.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Why Kubuntu?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Before picking Kubuntu, I tried Ubuntu, Debian, and even Kali Linux when I was doing CTF (Capture the Flag). Here's what happened:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ubuntu&lt;/strong&gt;: Lots of people like it, but GNOME (the desktop UI environment thing) was so slow on my computer. Not a good match, and to be honest normal Ubuntu felt bloated it was just like Windows but with more customisation and UNIX based&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Debian&lt;/strong&gt;: I thought I'd like it since Kali is based on it. Nope, it felt too different from what I was used to.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Kali Linux&lt;/strong&gt;: Great for penetration-testing, not so much for everyday stuff.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I almost tried Linux Mint because people say it's easy to use, but I didn't. In the end, I chose Kubuntu because of KDE Plasma. It looked good and worked well. After tweaking it, it felt just right.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Why Dual-Boot is Smart&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;At first, dual-booting sounded scary (GRUB Boot Loader isn't fun when it breaks), but it was actually a genius idea. Cal Newport's book (not sponsored, just a fan) talks about making separate spaces for deep work. So I made Windows for gaming with friends and Linux for serious coding. This helped me keep fun and work apart but easy to get to. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pSVYKr_6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://i.pinimg.com/originals/e2/cb/8b/e2cb8b16ab3f37bdd5d0a2ae3f12b8a1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pSVYKr_6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://i.pinimg.com/originals/e2/cb/8b/e2cb8b16ab3f37bdd5d0a2ae3f12b8a1.gif" alt="Limitless" width="600" height="253"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Linux Problems&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Switching to Linux wasn't all sunshine and rainbows. Like on April 19, when my computer wouldn't start because of a GPU driver problem. Fixing it took four hours and was a pain, but also kind of fun. It was way more hands-on than fixing issues on Windows, where I often felt stuck waiting for updates.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ylvBVEya--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://media3.giphy.com/media/v1.Y2lkPTc5MGI3NjExb2VyaGZrdjhrd3JjNTQzaGNya2NqdTM3Ym82eDY2bnFnbjZlOHI1bSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/l3E6KC64glestQ7Sw/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ylvBVEya--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://media3.giphy.com/media/v1.Y2lkPTc5MGI3NjExb2VyaGZrdjhrd3JjNTQzaGNya2NqdTM3Ym82eDY2bnFnbjZlOHI1bSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/l3E6KC64glestQ7Sw/giphy.gif" alt="Gilfoyle Silicon Valley" width="400" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Will I Keep Using Linux?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;After three months, the answer is a big YES! But I'm not ready to say bye to Windows yet. It's still the best for gaming and some apps that Linux doesn't have. For now, I'm happy with Windows for fun and Linux for work &amp;amp; productivity.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Should You Try Linux?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;If you're not a developer, probably not. If you don't want to spend time on tech forums or using the command line, Linux might just make you want to pull your hair out. It's not for the easily frustrated or impatient. If you want something that just works out of the box, maybe get a Mac instead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; This is all just my personal experience and thoughts. It's not technical advice, just me sharing my computer adventures!&lt;/p&gt;

</description>
      <category>linux</category>
      <category>discuss</category>
      <category>productivity</category>
      <category>opinion</category>
    </item>
    <item>
      <title>What is Docker? 🐋</title>
      <dc:creator>Abdulrahman Alblooshi</dc:creator>
      <pubDate>Sat, 24 Dec 2022 17:39:43 +0000</pubDate>
      <link>https://dev.to/abdualblooshi/what-is-docker-4963</link>
      <guid>https://dev.to/abdualblooshi/what-is-docker-4963</guid>
      <description>&lt;h2&gt;
  
  
  What is it, and how does it work?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Docker&lt;/strong&gt; is a tool that packages software into &lt;strong&gt;containers&lt;/strong&gt; that can run in a reliable manner in any environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Ff95p1ldw1tmmdyb2rnqm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Ff95p1ldw1tmmdyb2rnqm.png" alt="Michael the office" width="244" height="244"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So if you didn't understand what that means, imagine a cardboard box that contains all the parts of a software application. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F48qqtdlbq92lqmepdw0d.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F48qqtdlbq92lqmepdw0d.gif" alt="Box being packaged" width="480" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This box is the container, and it contains everything the application needs to run, including libraries, configuration files, and other dependencies.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fask5hr4aul8kaqggxz8r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fask5hr4aul8kaqggxz8r.png" alt="Docker" width="800" height="592"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The container is then deployed to a server, and the application runs inside the container. This means that the application can run anywhere, regardless of the underlying operating system or environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F6pe0d9en1qt77avi8csm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F6pe0d9en1qt77avi8csm.png" alt="Cargo Ship" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  What are the benefits of using Docker?
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Deployment
&lt;/h2&gt;

&lt;p&gt;Using Docker has many advantages. For starters, it makes it easier to deploy applications. You don't have to worry about compatibility issues, since the application runs in a container that is isolated from the underlying environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fg6xdd6lhklram33j82mb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fg6xdd6lhklram33j82mb.png" alt="Docker Container" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Management
&lt;/h2&gt;

&lt;p&gt;It also makes it easier to manage applications. Instead of having to manage multiple versions of the same application, you can just deploy a single container. This makes it easier to keep track of the application and its dependencies.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fkyc0fyeopqgq13mcjeay.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fkyc0fyeopqgq13mcjeay.png" alt="Docker Multiple Apps" width="800" height="639"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Scalability
&lt;/h2&gt;

&lt;p&gt;Finally, Docker makes it easier to scale applications. You can easily deploy multiple containers to handle increased demand, and you can also scale down when demand decreases.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Foyxq8gworsfmaa2kl989.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Foyxq8gworsfmaa2kl989.png" alt="Image description" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>A month without the YouTube Rabbit Hole 🕳️</title>
      <dc:creator>Abdulrahman Alblooshi</dc:creator>
      <pubDate>Tue, 28 Jun 2022 15:12:18 +0000</pubDate>
      <link>https://dev.to/abdualblooshi/a-month-without-the-youtube-rabbit-hole-49j5</link>
      <guid>https://dev.to/abdualblooshi/a-month-without-the-youtube-rabbit-hole-49j5</guid>
      <description>&lt;h2&gt;
  
  
  Identifying the Problem
&lt;/h2&gt;

&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%2Fd6bm2weqfpkwvjghaxzb.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%2Fd6bm2weqfpkwvjghaxzb.png" alt="Chef Ramsay" width="500" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Spending a couple of minutes on YouTube might not be that much of a problem, watching memes can be fun and joyful for lots of people, but when it's 2AM and you're trying to wake up early for work/school/university etc.. and you cannot resist the urge to watch just one more video of cute kittens or memes. &lt;/p&gt;

&lt;p&gt;In this case you have successfully fallen into the &lt;strong&gt;YouTube Rabbit Hole&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Solution
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://unhook.app/"&gt;&lt;strong&gt;Unhook&lt;/strong&gt;&lt;/a&gt;&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%2Fxiojmnix3nrs9fry0x8d.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%2Fxiojmnix3nrs9fry0x8d.png" alt="Unhook Website Homepage" width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I've discovered &lt;strong&gt;Unhook&lt;/strong&gt; which is a Google Chrome Extension that hides some features of YouTube, specifically the ones that make you stay on the platform.&lt;/p&gt;

&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%2Fzsr7u8vqyizhqtuq5qv0.gif" 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%2Fzsr7u8vqyizhqtuq5qv0.gif" alt="YouTube unhook gif" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I've decided to try this extension for a month, since I wasn't a fan of being stuck in the YouTube rabbit hole at 2AM because it pretty much ruined my sleep schedule and my productivity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Time Management
&lt;/h2&gt;

&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%2Fvavneu938xy29w6q6x94.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%2Fvavneu938xy29w6q6x94.png" alt="Cat playing with a clock" width="568" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another solution for me was time management, where I've used &lt;a href="https://www.noisli.com/"&gt;&lt;strong&gt;Noisli&lt;/strong&gt;&lt;/a&gt; to set a timer for &lt;strong&gt;X&lt;/strong&gt; minutes/hours for watching a YouTube video, or even browsing a social media platform.&lt;/p&gt;

&lt;p&gt;Personally this solution didn't work as good as using the Unhook extension but it helped me with the procrastination problem while I was coding or doing university work.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Result
&lt;/h2&gt;

&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%2F9yklxy8n0ijmzq63vw9u.gif" 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%2F9yklxy8n0ijmzq63vw9u.gif" alt="Gandalf Reading" width="498" height="208"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;It's interesting that within the first few days of testing the extension somehow it felt like something was wrong it was as if my brain was telling me that it's &lt;strong&gt;not enough&lt;/strong&gt; and I needed to &lt;strong&gt;watch one more video&lt;/strong&gt;.&lt;/p&gt;

&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%2Fpdl7th1odrtj0lukl1ix.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%2Fpdl7th1odrtj0lukl1ix.png" alt="Ironman on Computers" width="540" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I used to spend hours on YouTube where I've had issues with my sleep schedule and my productivity, but after a month of using this extension I've been able to search videos while working &lt;strong&gt;without any distractions or any procrastination&lt;/strong&gt; which increased my productivity drastically.&lt;/p&gt;

&lt;h3&gt;
  
  
  (Disclaimer: I wrote this blog post based on my own opinions and experience)
&lt;/h3&gt;

</description>
      <category>productivity</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Transforming SVG files into React Components 🖼️ -&gt;🧩</title>
      <dc:creator>Abdulrahman Alblooshi</dc:creator>
      <pubDate>Thu, 07 Apr 2022 21:48:40 +0000</pubDate>
      <link>https://dev.to/abdualblooshi/transforming-svg-files-to-react-components-2aan</link>
      <guid>https://dev.to/abdualblooshi/transforming-svg-files-to-react-components-2aan</guid>
      <description>&lt;h2&gt;
  
  
  Importing SVG files in React
&lt;/h2&gt;

&lt;p&gt;If you've ever faced an issue where you had no idea how to import an SVG file in React.js or any other Javascript Framework then you've probably been in the same situation that I've been in 😢&lt;/p&gt;

&lt;h2&gt;
  
  
  So what's the solution? SVGR!
&lt;/h2&gt;

&lt;p&gt;SVGR is a tool that applies complex transformations to convert an SVG file to JSX/React Component&lt;/p&gt;

&lt;p&gt;So basically it converts an SVG file to a React Component automatically! ✨&lt;/p&gt;

&lt;p&gt;Let's assume we had our SVG file as the following:&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;svg&lt;/span&gt;
  &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"200px"&lt;/span&gt;
  &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"200px"&lt;/span&gt;
  &lt;span class="na"&gt;viewBox=&lt;/span&gt;&lt;span class="s"&gt;"0 0 200 200"&lt;/span&gt;
  &lt;span class="na"&gt;version=&lt;/span&gt;&lt;span class="s"&gt;"1.1"&lt;/span&gt;
  &lt;span class="na"&gt;xmlns=&lt;/span&gt;&lt;span class="s"&gt;"http://www.w3.org/2000/svg"&lt;/span&gt;
  &lt;span class="na"&gt;xmlns:xlink=&lt;/span&gt;&lt;span class="s"&gt;"http://www.w3.org/1999/xlink"&lt;/span&gt;
&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
........
........
........
&lt;span class="nt"&gt;&amp;lt;/svg&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It would simply be converted into this form!&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="k"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;SvgComponent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;props&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="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;svg&lt;/span&gt; &lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1em&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1em&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;viewBox&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;0 0 200 200&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;{...&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;path&lt;/span&gt; &lt;span class="nx"&gt;d&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;""&lt;/span&gt; &lt;span class="nx"&gt;fill&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#FFF&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/svg&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;SvgComponent&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  I've tried it on Next.js, I've had to do a two step process
&lt;/h2&gt;

&lt;p&gt;First I had to configure my &lt;code&gt;next.config.js&lt;/code&gt; file by adding the following:&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;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;webpack&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;rules&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;test&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;\.&lt;/span&gt;&lt;span class="sr"&gt;svg$/i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;issuer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;\.[&lt;/span&gt;&lt;span class="sr"&gt;jt&lt;/span&gt;&lt;span class="se"&gt;]&lt;/span&gt;&lt;span class="sr"&gt;sx&lt;/span&gt;&lt;span class="se"&gt;?&lt;/span&gt;&lt;span class="sr"&gt;$/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;use&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@svgr/webpack&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="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;config&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;p&gt;And after that I simply imported my logo as an SVG but wrote it as a React Component into &lt;code&gt;Home&lt;/code&gt; by writing the following code:&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="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Logo&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./logo.svg&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Home&lt;/span&gt; &lt;span class="o"&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="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Logo&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It's as simple as that!&lt;/p&gt;

&lt;h2&gt;
  
  
  SVGR Playground
&lt;/h2&gt;

&lt;p&gt;SVGR's website includes an in-browser SVG -&amp;gt; React Component converter which I've personally used on multiple occasions when I didn't need to install SVGR as a package&lt;br&gt;
&lt;a href="https://react-svgr.com/playground/"&gt;https://react-svgr.com/playground/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qh9jhUBk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/uCA2BQi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qh9jhUBk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/uCA2BQi.png" alt="An image of SVGR Playground" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://react-svgr.com/"&gt;The best way of learning is by experimenting! Click here to visit SVGR's website&lt;/a&gt;
&lt;/h2&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>📝3 Simple ways to create a README.md</title>
      <dc:creator>Abdulrahman Alblooshi</dc:creator>
      <pubDate>Mon, 06 Sep 2021 14:31:29 +0000</pubDate>
      <link>https://dev.to/abdualblooshi/3-simple-ways-to-create-a-readme-md-2045</link>
      <guid>https://dev.to/abdualblooshi/3-simple-ways-to-create-a-readme-md-2045</guid>
      <description>&lt;h1&gt;
  
  
  First of all, why have a well designed README.md?
&lt;/h1&gt;

&lt;p&gt;Having a well designed README.md would give you the following benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Makes the project documentation much easier to understand&lt;/li&gt;
&lt;li&gt;It would give others the impression that your work is organized.&lt;/li&gt;
&lt;li&gt;It could even help you point out and plan what you want to do with your project&lt;/li&gt;
&lt;li&gt;It makes your project stand out from other projects&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;This is an example of a &lt;strong&gt;well designed&lt;/strong&gt; README.md&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OryTEUIm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/PoxMR2E.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OryTEUIm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/PoxMR2E.png" alt="enter image description here" width="731" height="727"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;On the other hand this is an example of a &lt;strong&gt;poorly designed&lt;/strong&gt; README.md&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nn851M8U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/vDdF8RJ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nn851M8U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/vDdF8RJ.png" alt="enter image description here" width="734" height="190"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Automation
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;“You're either the one that creates the automation or you're getting automated“ ~ Tom Preston-Werner&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Some developers would rather spend time on the project itself than to spend it on a README.md, this is why automation is a key component here.&lt;/p&gt;

&lt;p&gt;Here are a few examples of websites/apps that (almost) automate creating README.md files.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="//readme.so"&gt;Readme.so&lt;/a&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;A really simple to use web app that simplifies creating README.md which is so close to automating it compared to the original way of creating README.md files, where you could add templates of sections and it makes it easier to know what to add to your README.md file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hWUi7z_K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://i.imgur.com/ogYwgAG.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hWUi7z_K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://i.imgur.com/ogYwgAG.gif" alt="enter image description here" width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;a href="//typora.io"&gt;Typora.io&lt;/a&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;A more minimalistic downloadable app that shows you a live preview of markdown language being written, it's not that much of automation but it helps you visualize what you type in a better way. (Available on Windows/OSX/Linux)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZVLprPGf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://im2.ezgif.com/tmp/ezgif-2-9438a6715777.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZVLprPGf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://im2.ezgif.com/tmp/ezgif-2-9438a6715777.gif" alt="enter image description here" width="600" height="531"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;a href="//stackedit.io"&gt;StackEdit.io&lt;/a&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;StackEdit is more of a markdown editor than a README.MD automation tool, but the way it's accessible is similar to Microsoft Word or even Google Docs which might be familiar to people who were used to working on those type of platforms.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LM9sSNOx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://imgur.com/FTZlUkI.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LM9sSNOx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://imgur.com/FTZlUkI.png" alt="enter image description here" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  In conclusion
&lt;/h1&gt;

&lt;p&gt;The key component in making markdown files is finding an easy way to do them which doesn't cost a lot of time, the tools above are examples that could help you as a developer/writer to write a README.md file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Thank you for reading my article!
&lt;/h3&gt;

</description>
      <category>markdown</category>
      <category>documentation</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
