<?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>Forem: R4V3N</title>
    <description>The latest articles on Forem by R4V3N (@ther4v3n).</description>
    <link>https://forem.com/ther4v3n</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%2F936486%2Fcd5c3d64-6ce4-49c8-98dd-1732338c9786.png</url>
      <title>Forem: R4V3N</title>
      <link>https://forem.com/ther4v3n</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ther4v3n"/>
    <language>en</language>
    <item>
      <title>8 Mistakes to Avoid While Learning to Code</title>
      <dc:creator>R4V3N</dc:creator>
      <pubDate>Wed, 29 Nov 2023 08:24:32 +0000</pubDate>
      <link>https://forem.com/ther4v3n/8-mistakes-to-avoid-while-learning-to-code-2m2l</link>
      <guid>https://forem.com/ther4v3n/8-mistakes-to-avoid-while-learning-to-code-2m2l</guid>
      <description>&lt;p&gt;Most of us have spent a considerable part of our childhood in cars, observing others drive. However, when it’s our turn to get behind the wheel, we quickly realize that watching isn’t the same as doing. This is a perfect analogy for what I call the “Tutorial Trap” in learning to code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding the Tutorial Trap
&lt;/h2&gt;

&lt;p&gt;Many aspiring coders fall into the trap of endlessly watching tutorials, hoping to learn coding through observation. But just like driving, coding requires hands-on experience. This method alone often leads to failure, and I’ve identified eight key mistakes in this learning approach.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Journey and Observations
&lt;/h2&gt;

&lt;p&gt;Having tried and failed to learn coding several times myself, I’ve witnessed these pitfalls firsthand. Moreover, I’ve seen numerous people encounter these same challenges.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Importance of Questions
&lt;/h2&gt;

&lt;p&gt;Learning to drive involves asking numerous questions, and the same applies to coding. It’s essential to inquire about things you don’t understand. These questions can be directed to a teacher, mentor, online forums, or even AI tools like ChatGPT. But remember, the quality of your questions matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Asking the Right Questions
&lt;/h2&gt;

&lt;p&gt;Contrary to the adage, there are ineffective questions. For instance, asking someone to simply fix your problem doesn’t foster learning. A constructive question should include context, what you’ve tried, and a growth-oriented ask, like seeking guidance rather than a quick fix.&lt;/p&gt;

&lt;h2&gt;
  
  
  Beyond Copy-Pasting Solutions
&lt;/h2&gt;

&lt;p&gt;Avoid the habit of copying solutions from resources like tutorials, ChatGPT, or Stack Overflow without understanding them. Embrace the principle of learning to fish, rather than just being given a fish.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Fundamentals Matter
&lt;/h2&gt;

&lt;p&gt;Jumping into trendy technologies without a grasp of the basics is akin to building a house without a foundation. Start with core concepts before advancing to frameworks and libraries.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Role of Practice and Patience
&lt;/h2&gt;

&lt;p&gt;Learning to code is a gradual process. Just as you wouldn’t start driving on the highway immediately, coding requires step-by-step progression and plenty of practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Gap Left by Tutorials
&lt;/h2&gt;

&lt;p&gt;Tutorials often skip the crucial debugging process, a skill every coder needs to develop independently. Deliberate practice in debugging is essential.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Value of Real Projects
&lt;/h2&gt;

&lt;p&gt;Engaging in real, non-tutorial projects is vital. These projects force you to confront and resolve unique challenges, much like swimming in water compared to practicing on land.&lt;/p&gt;

&lt;h2&gt;
  
  
  Avoiding Burnout
&lt;/h2&gt;

&lt;p&gt;Lastly, beware of burnout. Learning to code is a marathon, not a sprint. It requires time, often months or years, and cramming can lead to exhaustion and loss of interest.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Learning to code is indeed challenging, but with the right approach and mindset, it can be an incredibly rewarding journey. Remember to avoid these common traps, practice patiently, and enjoy the process of becoming a proficient coder.&lt;/p&gt;

&lt;p&gt;This is all. I hope you find this useful. If you do, then don’t forget to give ❤️ and Bookmark 🏷️ for later use and if you have any questions or feedback then don’t hesitate to drop them in the comments below. I’ll see in the next one.&lt;br&gt;
Please visit also my &lt;a href="https://www.oliver-joisten.se/blog/"&gt;website&lt;/a&gt; to read more informative blogposts&lt;br&gt;
Connect with me on &lt;a href="//www.linkedin.com/in/oliver-joisten"&gt;LinkedIn&lt;/a&gt; to read more about C/C++, Git, &lt;a href="https://github.com/The-R4V3N"&gt;Github&lt;/a&gt;, and more…!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>codenewbie</category>
      <category>development</category>
    </item>
    <item>
      <title>My VS-Code setup</title>
      <dc:creator>R4V3N</dc:creator>
      <pubDate>Fri, 10 Mar 2023 08:49:12 +0000</pubDate>
      <link>https://forem.com/ther4v3n/my-vs-code-setup-268e</link>
      <guid>https://forem.com/ther4v3n/my-vs-code-setup-268e</guid>
      <description>&lt;p&gt;In this article, I’ll be sharing my VS-Code Setup with you. It includes the theme and Icons that use and Extensions (this is very important).&lt;/p&gt;

&lt;h3&gt;
  
  
  🎨Theme
&lt;/h3&gt;

&lt;p&gt;I switch between themes.&lt;br&gt;
Most of the Time I use &lt;a href="https://marketplace.visualstudio.com/items?itemName=EliverLara.andromeda"&gt;Andromeda&lt;/a&gt; as my primary theme for VS Code but sometimes I switch to &lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools-themes"&gt;C/C++ theme&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Andromeda Theme&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oDfrp_Wk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d08ol8hahjj8nk2hrk3g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oDfrp_Wk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d08ol8hahjj8nk2hrk3g.png" alt="Andromeda Theme" width="800" height="595"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;C/C++ Theme&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5dm_yFHy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/17ard6apoc166n71akge.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5dm_yFHy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/17ard6apoc166n71akge.png" alt="C/C++ Theme" width="517" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🪟Icons
&lt;/h3&gt;

&lt;p&gt;For Icons, I sometimes switch between &lt;a href="https://marketplace.visualstudio.com/items?itemName=miguelsolorio.fluent-icons"&gt;Fluent Icons Theme&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--C396mNQc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o4qrcs0kiq2a9jj3sdrd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C396mNQc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o4qrcs0kiq2a9jj3sdrd.png" alt="Fluent Icons Theme" width="53" height="541"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and &lt;a href="https://marketplace.visualstudio.com/items?itemName=vscode-icons-team.vscode-icons"&gt;vscode icons&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now let’s dive into the best part, there are a lot of extensions I mention only my favorite or the one that I use mostly every day. Anyway, let’s start from A to Z.&lt;/p&gt;

&lt;h2&gt;
  
  
  Better Comments
&lt;/h2&gt;

&lt;p&gt;The Better Comments extension will help you create more human-friendly comments in your code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mQAPp7hJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v0v8isatkwzzw4tv9gwj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mQAPp7hJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v0v8isatkwzzw4tv9gwj.png" alt="Better Comments" width="458" height="414"&gt;&lt;/a&gt;&lt;br&gt;
Download: &lt;a href="https://marketplace.visualstudio.com/items?itemName=aaron-bond.better-comments"&gt;Better Comments&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  C/C++ Extension Pack
&lt;/h2&gt;

&lt;p&gt;An extension package which includes all necessary extensions for C/C++ Developer&lt;/p&gt;

&lt;p&gt;Download: &lt;a href="https://marketplace.visualstudio.com/items?itemName=franneck94.vscode-c-cpp-dev-extension-pack&amp;amp;ssr=false"&gt;C/C++ Extension Pack&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  C/C++ Include Guard
&lt;/h2&gt;

&lt;p&gt;The C/C++ Include Guard extension enables you to add, remove or update include guard macros to your C/C++ header files in one go.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6ZYz3g3B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xexrh65w3vx43xdaq1pp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6ZYz3g3B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xexrh65w3vx43xdaq1pp.png" alt="C/C++ Include Guard" width="713" height="238"&gt;&lt;/a&gt;&lt;br&gt;
Download: &lt;a href="https://marketplace.visualstudio.com/items?itemName=akiramiyakoda.cppincludeguard"&gt;C/C++ Include Guard&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Doxygen Documentation Generator
&lt;/h2&gt;

&lt;p&gt;This VS Code Extensions provides Doxygen Documentation generation on the fly by starting a Doxygen comment block and pressing enter.&lt;/p&gt;

&lt;p&gt;Download: &lt;a href="https://marketplace.visualstudio.com/items?itemName=cschlosser.doxdocgen"&gt;Doxygen Documentation Generator&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Error Lens
&lt;/h2&gt;

&lt;p&gt;Error Lens turbo-charges language diagnostic features by making diagnostics stand out more prominently, highlighting the entire line wherever a diagnostic is generated by the language and also prints the message inline.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8JDqFOXh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bieqe072rtgsqm2yfjt8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8JDqFOXh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bieqe072rtgsqm2yfjt8.png" alt="Error Lens" width="709" height="82"&gt;&lt;/a&gt;&lt;br&gt;
Download: &lt;a href="https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens"&gt;Error Lens&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Markdown All in One
&lt;/h2&gt;

&lt;p&gt;All you need for Markdown (keyboard shortcuts, table of contents, auto preview and more).&lt;/p&gt;

&lt;p&gt;Note: VS Code has basic Markdown support out-of-the-box (e.g, Markdown preview), please see the official documentation for more information.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ehARv6Yq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a2gp2jyt3wtm4qp1ksa0.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ehARv6Yq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a2gp2jyt3wtm4qp1ksa0.gif" alt="Markdown All in One" width="564" height="408"&gt;&lt;/a&gt;&lt;br&gt;
Download: &lt;a href="https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one"&gt;Markdown All in One&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  PlatformIO IDE
&lt;/h2&gt;

&lt;p&gt;PlatformIO IDE is a Professional development environment for Embedded, IoT, Arduino, CMSIS, ESP-IDF, FreeRTOS, libOpenCM3, mbed OS, Pulp OS, SPL, STM32Cube, Zephyr RTOS, ARM, AVR, Espressif (ESP8266/ESP32), FPGA, MCS-51 (8051), MSP430, Nordic (nRF51/nRF52), PIC32, RISC-V, STMicroelectronics (STM8/STM32), Teensy&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--a5dXLKA8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hmwdmeeqhwt3w2xs8me5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--a5dXLKA8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hmwdmeeqhwt3w2xs8me5.png" alt="PlatformIO IDE" width="709" height="669"&gt;&lt;/a&gt;&lt;br&gt;
Download: &lt;a href="https://marketplace.visualstudio.com/items?itemName=platformio.platformio-ide"&gt;PlatformIO IDE&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tabnine AI
&lt;/h2&gt;

&lt;p&gt;Tabnine is an AI code assistant that makes you a better developer. Tabnine will increase your development velocity with real-time code completions in all the most popular coding languages and IDEs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sC0stPLB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gzm257j9p791imh2o4v5.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sC0stPLB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gzm257j9p791imh2o4v5.gif" alt="Tabnine AI" width="480" height="270"&gt;&lt;/a&gt;&lt;br&gt;
Download: &lt;a href="https://marketplace.visualstudio.com/items?itemName=TabNine.tabnine-vscode"&gt;Tabnine AI&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  WakaTime
&lt;/h2&gt;

&lt;p&gt;And last but not least WakaTime is an open-source VS Code plugin for metrics, insights, and time tracking automatically generated from your programming activity.&lt;/p&gt;

&lt;p&gt;Download: &lt;a href="https://wakatime.com/vs-code"&gt;WakaTime&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Wrapping up
&lt;/h3&gt;

&lt;p&gt;This is all. I hope you find this useful. If you do, then don’t forget to give ❤️ and Bookmark 🏷️ for later use and if you have any questions or feedback then don’t hesitate to drop them in the comments below. I’ll see in the next one.&lt;br&gt;
Please visit also my &lt;a href="https://www.oliver-joisten.se/blog/"&gt;website&lt;/a&gt; to read more informative blogposts&lt;br&gt;
Connect with me on &lt;a href="https://www.linkedin.com/in/oliver-joisten/"&gt;LinkedIn&lt;/a&gt; to read more about C/C++, Git, Github, and more…!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>vscode</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Setting up a Linux Home Server and Using it to Program with VS Code and GitHub</title>
      <dc:creator>R4V3N</dc:creator>
      <pubDate>Mon, 06 Mar 2023 14:04:19 +0000</pubDate>
      <link>https://forem.com/ther4v3n/setting-up-a-linux-home-server-and-using-it-to-program-with-vs-code-and-github-22f</link>
      <guid>https://forem.com/ther4v3n/setting-up-a-linux-home-server-and-using-it-to-program-with-vs-code-and-github-22f</guid>
      <description>&lt;p&gt;Linux is a popular open-source operating system that is widely used by programmers and developers around the world. It is a powerful and flexible platform that can be used to create and run a wide range of applications, including web servers, databases, and programming environments. In this blog post, we will guide you through the process of setting up a Linux home server and using it to program with VS Code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Setting up a Linux Home Server
&lt;/h3&gt;

&lt;p&gt;Step 1: Choose Your Hardware&lt;br&gt;
The first step in setting up a Linux home server is to choose your hardware. You will need a computer with enough memory and processing power to run the operating system and any applications you plan to install. It is also important to choose a machine that has enough storage space to store your files and data.&lt;/p&gt;

&lt;p&gt;Step 2: Download Ubuntu&lt;br&gt;
There are many Distribution that you can choose but for this blogpost i choose Ubuntu. Anyways the next step is to download the latest version of Ubuntu from the &lt;a href="https://ubuntu.com/#download"&gt;official website&lt;/a&gt;. You can choose between the desktop or server version, but for this tutorial, we will be using the server version.&lt;/p&gt;

&lt;p&gt;Step 3: Create a Bootable USB Drive&lt;br&gt;
After downloading the Ubuntu ISO file, you will need to create a bootable USB drive using software like &lt;a href="https://rufus.ie/en/"&gt;Rufus&lt;/a&gt; or &lt;a href="https://www.balena.io/etcher"&gt;BalenaEtcher&lt;/a&gt;. Insert the USB drive into your computer, and follow the instructions to create the bootable drive.&lt;/p&gt;

&lt;p&gt;Step 4: Install Ubuntu&lt;br&gt;
Once you have created the bootable USB drive, insert it into the machine that you want to use as your server, and boot from the USB drive. Follow the instructions to install Ubuntu, and make sure to choose the server option during the installation process.&lt;/p&gt;

&lt;p&gt;Step 5: Configure Ubuntu&lt;br&gt;
After the installation is complete, you will need to configure Ubuntu. This includes setting up a user account, configuring the network, and installing any necessary software packages.&lt;/p&gt;

&lt;p&gt;Using VS Code to Program on Ubuntu&lt;br&gt;
&lt;a href="https://code.visualstudio.com/"&gt;Visual Studio Code&lt;/a&gt; is a popular code editor that is widely used by developers around the world. It is a powerful and flexible tool that can be used to write code in a wide range of programming languages, including Python, JavaScript, and C++.&lt;/p&gt;

&lt;p&gt;Step 1: Install VS Code&lt;br&gt;
The first step in using VS Code to program on Ubuntu is to install the software. You can do this by opening the terminal and running the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo snap install --classic code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will download and install the latest version of VS Code on your machine.&lt;/p&gt;

&lt;p&gt;Step 2: Open VS Code&lt;br&gt;
After installing VS Code, you can open the software by searching for it in the Applications menu or by running the following command in the terminal:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Step 3: Clone Your Repository&lt;br&gt;
To clone a &lt;a href="https://github.com/"&gt;GitHub&lt;/a&gt; repository, open VS Code and click the “Clone Repository” button on the welcome screen. Enter the URL of the repository you want to clone and select the destination folder on your machine. VS Code will then download the repository files and open the project in the editor.&lt;/p&gt;

&lt;p&gt;Step 4: Make Changes and Commit Your Code&lt;br&gt;
Once you’ve cloned the repository, you can make changes to the code and commit your changes to the repository. To commit your code, open the Source Control panel in VS Code and click the “+” icon next to the files you want to commit. Enter a commit message and click the checkmark to commit your changes.&lt;/p&gt;

&lt;p&gt;Step 5: Push Your Changes to GitHub&lt;br&gt;
After you’ve committed your changes,&lt;/p&gt;

&lt;p&gt;you can push them to GitHub to share them with your team or the broader community. To push your changes, click the “…” icon in the Source Control panel and select “Push”. VS Code will then upload your changes to the GitHub repository.&lt;/p&gt;

&lt;p&gt;Step 6: Pull Changes from GitHub&lt;br&gt;
If you are working on a project with a team, it is likely that other team members will make changes to the code while you are working on it. To pull these changes from GitHub, open the Source Control panel in VS Code and click the “…” icon. Select “Pull” to download the latest changes from the repository.&lt;/p&gt;

&lt;p&gt;Step 7: Resolve Merge Conflicts&lt;br&gt;
Sometimes, when you pull changes from GitHub, you may encounter merge conflicts. These occur when two or more team members make changes to the same piece of code. To resolve merge conflicts, open the file with the conflict in VS Code and look for the lines that have been modified. You can then edit the code to merge the changes together and resolve the conflict.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Incorporating GitHub into your programming workflow can help you collaborate with others, manage your code repositories more effectively, and streamline the development process. By following the steps outlined in this blog post, you can set up a Linux Ubuntu home server, use VS Code to program, and integrate GitHub into your workflow. This will provide you with a powerful and flexible platform that can help you take your coding skills to the next level.&lt;/p&gt;

&lt;p&gt;Want to know how to create your own Linux commands instead? I got you covered take a look here to learn how you can create your own &lt;a href="https://www.oliver-joisten.se/how-to-create-your-own-commands-in-linux/"&gt;Linux Commands&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  THANK YOU FOR READING
&lt;/h2&gt;

&lt;p&gt;I hope you found this little article helpful. Please share it with your friends and colleagues. Sharing is caring.&lt;br&gt;
Please visit also my &lt;a href="https://www.oliver-joisten.se/blog/"&gt;website&lt;/a&gt; to read more informative blogposts&lt;br&gt;
Connect with me on &lt;a href="https://www.linkedin.com/in/oliver-joisten/"&gt;LinkedIn&lt;/a&gt; to read more about C/C++, Git, Github, and more…!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>tutorial</category>
      <category>linux</category>
    </item>
    <item>
      <title>Understanding the Ternary Operator in C and C++</title>
      <dc:creator>R4V3N</dc:creator>
      <pubDate>Fri, 03 Mar 2023 15:48:51 +0000</pubDate>
      <link>https://forem.com/ther4v3n/understanding-the-ternary-operator-in-c-and-c-3ho2</link>
      <guid>https://forem.com/ther4v3n/understanding-the-ternary-operator-in-c-and-c-3ho2</guid>
      <description>&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;In C and C++, the ternary operator, also known as the conditional operator, is a unique feature that allows for concise and efficient conditional expressions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Assigning a value based on a condition
&lt;/h2&gt;

&lt;p&gt;The ternary operator can be used to assign a value to a variable based on a condition. For example, let’s say we have two integers &lt;code&gt;a&lt;/code&gt; and &lt;code&gt;b&lt;/code&gt;, and we want to assign the value of the larger integer to another variable &lt;code&gt;max&lt;/code&gt;. We can use the ternary operator to achieve this in a single line of code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int max = (a &amp;gt; b) ? a : b;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code first checks if &lt;code&gt;a&lt;/code&gt; is greater than &lt;code&gt;b&lt;/code&gt;. If it is, the value of &lt;code&gt;a&lt;/code&gt; is assigned to &lt;code&gt;max&lt;/code&gt;. Otherwise, the value of &lt;code&gt;b&lt;/code&gt;is assigned to &lt;code&gt;max&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Returning a value based on a condition
&lt;/h2&gt;

&lt;p&gt;The ternary operator can also be used to return a value from a function based on a condition. For example, let’s say we have a function &lt;code&gt;absolute value&lt;/code&gt; that takes an integer as input and returns its absolute value. We can use the ternary operator to simplify the implementation of this function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int absolute value(int x) {
    return (x &amp;lt; 0) ? -x : x;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code checks if &lt;code&gt;x&lt;/code&gt; is negative. If it is, the absolute value of &lt;code&gt;x&lt;/code&gt; is returned as &lt;code&gt;-x&lt;/code&gt;. Otherwise, the value of &lt;code&gt;x&lt;/code&gt; is returned.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nesting the ternary operator
&lt;/h2&gt;

&lt;p&gt;The ternary operator can also be nested to create more complex conditional expressions. For example, let’s say we have three integers &lt;code&gt;a&lt;/code&gt;, &lt;code&gt;b&lt;/code&gt;, and &lt;code&gt;c&lt;/code&gt;, and we want to find the largest of the three. We can use nested ternary operators to achieve this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int max = (a &amp;gt; b) ? ((a &amp;gt; c) ? a : c) : ((b &amp;gt; c) ? b : c);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code first checks if &lt;code&gt;a&lt;/code&gt; is greater than &lt;code&gt;b&lt;/code&gt;. If it is, another ternary operator is used to check if a is greater than &lt;code&gt;c&lt;/code&gt;. If it is, the value of &lt;code&gt;a&lt;/code&gt; is assigned to &lt;code&gt;max&lt;/code&gt;. If &lt;code&gt;a&lt;/code&gt; is not greater than &lt;code&gt;c&lt;/code&gt;, the value of &lt;code&gt;c&lt;/code&gt; is assigned to &lt;code&gt;max&lt;/code&gt;. If &lt;code&gt;a&lt;/code&gt; is not greater than &lt;code&gt;b&lt;/code&gt;, another ternary operator is used to check if &lt;code&gt;b&lt;/code&gt; is greater than &lt;code&gt;c&lt;/code&gt;. If it is, the value of &lt;code&gt;b&lt;/code&gt; is assigned to &lt;code&gt;max&lt;/code&gt;. If &lt;code&gt;b&lt;/code&gt; is not greater than &lt;code&gt;c&lt;/code&gt;, the value of &lt;code&gt;c&lt;/code&gt; is assigned to &lt;code&gt;max&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In conclusion, the ternary operator is a powerful tool in C and C++ that can simplify conditional expressions and make code more concise and efficient. By understanding how to use the ternary operator effectively, you can write cleaner and more readable code.&lt;/p&gt;

&lt;h2&gt;
  
  
  THANK YOU FOR READING
&lt;/h2&gt;

&lt;p&gt;I hope you found this little article helpful. Please share it with your friends and colleagues. Sharing is caring.&lt;br&gt;
Please visit also my &lt;a href="https://www.oliver-joisten.se/blog/" rel="noopener noreferrer"&gt;website&lt;/a&gt; to read more informative blogposts&lt;br&gt;
Connect with me on &lt;a href="https://www.linkedin.com/in/oliver-joisten/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; to read more about C/C++, Git, Github, and more…!&lt;/p&gt;

</description>
      <category>functional</category>
      <category>discuss</category>
      <category>web3</category>
      <category>ai</category>
    </item>
    <item>
      <title>Understanding Overloaded Functions in C++: Benefits, Limitations, and Best Practices</title>
      <dc:creator>R4V3N</dc:creator>
      <pubDate>Wed, 01 Mar 2023 17:46:50 +0000</pubDate>
      <link>https://forem.com/ther4v3n/understanding-overloaded-functions-in-c-benefits-limitations-and-best-practices-503g</link>
      <guid>https://forem.com/ther4v3n/understanding-overloaded-functions-in-c-benefits-limitations-and-best-practices-503g</guid>
      <description>&lt;h3&gt;
  
  
  Introduction:
&lt;/h3&gt;

&lt;p&gt;C++ is a versatile language that supports various programming paradigms such as procedural, object-oriented, and generic programming. One of the key features of C++ is its support for function overloading, which allows developers to define multiple functions with the same name but different parameter lists. This feature is known as overloaded functions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overloaded functions:
&lt;/h2&gt;

&lt;p&gt;Overloaded functions are functions that have the same name but different parameters. The parameters can differ in terms of their number, order, or types. When a function is called, the compiler determines which version of the function to call based on the number and types of the arguments passed to it.&lt;/p&gt;

&lt;p&gt;For example, consider the following overloaded functions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;void print(int value)
{
    std::cout &amp;lt;&amp;lt; "Value: " &amp;lt;&amp;lt; value &amp;lt;&amp;lt; std::endl;
}

void print(double value)
{
    std::cout &amp;lt;&amp;lt; "Value: " &amp;lt;&amp;lt; value &amp;lt;&amp;lt; std::endl;
}

void print(const std::string&amp;amp; value)
{
    std::cout &amp;lt;&amp;lt; "Value: " &amp;lt;&amp;lt; value &amp;lt;&amp;lt; std::endl;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, we have three overloaded functions with the same name, print, but different parameter types. The first function takes an integer, the second takes a double, and the third takes a string. Depending on the argument passed to the &lt;code&gt;print&lt;/code&gt; function, the compiler will determine which version of the function to call.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to use overloaded functions:
&lt;/h2&gt;

&lt;p&gt;Overloaded functions are useful when we need to perform the same operation on different types of data. Instead of writing multiple functions with different names, we can use the same name and overload it with different parameter types. This makes the code more readable and easier to maintain.&lt;/p&gt;

&lt;p&gt;For example, let’s say we have a function that calculates the area of a rectangle:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;double calculateArea(double length, double width)
{
    return length * width;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can overload this function to calculate the area of a circle and a triangle as well:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;double calculateArea(double radius)
{
    return 3.14 * radius * radius;
}

double calculateArea(double base, double height)
{
    return 0.5 * base * height;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, depending on the shape we want to calculate the area of, we can call the appropriate version of the &lt;code&gt;calculateArea&lt;/code&gt; function.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of overloaded functions:
&lt;/h2&gt;

&lt;p&gt;Overloaded functions provide the following benefits:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Readability: Overloaded functions make the code more readable 
by allowing us to use the same name for similar operations.&lt;/li&gt;
&lt;li&gt;Flexibility: Overloaded functions provide flexibility by 
allowing us to perform the same operation on different types of 
data.&lt;/li&gt;
&lt;li&gt;Reusability: Overloaded functions promote reusability by 
reducing the need to write multiple functions with different 
names for similar operations.&lt;/li&gt;
&lt;li&gt;Polymorphism: Overloaded functions provide a form of 
polymorphism by allowing us to use the same name for similar 
operations on different types of data.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Limitations of overloaded functions:
&lt;/h2&gt;

&lt;p&gt;Overloaded functions can be confusing if not used properly. Here are some limitations to consider when using overloaded functions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Ambiguity: Overloaded functions can be ambiguous if the &lt;br&gt;
parameter types are too similar. For example, having overloaded &lt;br&gt;
functions with &lt;code&gt;int&lt;/code&gt; and &lt;code&gt;long&lt;/code&gt; types can cause confusion when &lt;br&gt;
passing arguments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code complexity: Overloading functions can increase code &lt;br&gt;
complexity, especially when multiple overloaded functions have &lt;br&gt;
to be maintained.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Function signatures: Overloading functions can result in &lt;br&gt;
function signatures that are difficult to read and understand, &lt;br&gt;
especially if the functions have complex parameter lists.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion:
&lt;/h2&gt;

&lt;p&gt;Overloaded functions are a powerful feature of C++ that allows developers to write more readable and maintainable code. Overloading functions can make code more flexible and reusable by allowing the same operation to be performed on different types of data. However, overloading&lt;/p&gt;

&lt;h3&gt;
  
  
  THANK YOU FOR READING
&lt;/h3&gt;

&lt;p&gt;I hope you found this little article helpful. Please share it with your friends and colleagues. Sharing is caring.&lt;br&gt;
Please visit also my &lt;a href="https://www.oliver-joisten.se/blog/" rel="noopener noreferrer"&gt;website&lt;/a&gt; to read more informative blogposts&lt;br&gt;
Connect with me on &lt;a href="https://www.linkedin.com/in/oliver-joisten/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; to read more about C/C++, Git, Github, and more…!&lt;/p&gt;

</description>
      <category>devto</category>
      <category>showdev</category>
      <category>community</category>
    </item>
    <item>
      <title>Streamlining Your Development Workflow with GitHub Actions: A Comprehensive Guide</title>
      <dc:creator>R4V3N</dc:creator>
      <pubDate>Tue, 28 Feb 2023 15:10:55 +0000</pubDate>
      <link>https://forem.com/ther4v3n/streamlining-your-development-workflow-with-github-actions-a-comprehensive-guide-2fd3</link>
      <guid>https://forem.com/ther4v3n/streamlining-your-development-workflow-with-github-actions-a-comprehensive-guide-2fd3</guid>
      <description>&lt;p&gt;GitHub Actions is a powerful tool for automating your software development workflows. It allows you to define custom workflows, known as actions, to be triggered by events in your repository such as a push to a branch or a pull request being opened. With GitHub Actions, you can automate tasks such as running tests, deploying your application, and more, all without leaving the GitHub platform. In this blog post, we will cover the basics of GitHub Actions and show you how to get started with creating your own workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are GitHub Actions?
&lt;/h2&gt;

&lt;p&gt;GitHub Actions is a platform for automating your software development workflows. It allows you to define custom workflows that are triggered by events in your repository. These workflows are made up of one or more actions, which are individual units of code that perform a specific task. Actions can be written in any language and can be shared with the GitHub community through the GitHub Marketplace.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to get started with GitHub Actions
&lt;/h2&gt;

&lt;p&gt;Getting started with GitHub Actions is easy. The first thing you need to do is create a new repository or use an existing one. Once you have your repository set up, you can create a new workflow file by navigating to the Actions tab in your repository and clicking on the “New workflow” button. This will open a new file in your repository called &lt;code&gt;main.yml&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;main.yml&lt;/code&gt; file is where you define your workflow. It is written in YAML, a human-readable data serialization language, and consists of one or more jobs. Each job is made up of one or more steps, which are individual actions that perform a specific task.&lt;/p&gt;

&lt;p&gt;Here is an example of a simple workflow that runs tests every time a pull request is opened:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name: Run tests on pull request
on:
  pull_request:
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Install dependencies
        run: npm install
      - name: Run tests
        run: npm test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we have defined a workflow called “Run tests on pull request” that is triggered by the &lt;code&gt;pull_request&lt;/code&gt; event. The workflow consists of one job called “test” that runs on the latest version of Ubuntu. The job has three steps: checking out the code, installing dependencies, and running tests.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding workflows, jobs, and steps
&lt;/h2&gt;

&lt;p&gt;As mentioned earlier, workflows are made up of one or more jobs, and jobs are made up of one or more steps. Let’s take a closer look at each of these components.&lt;/p&gt;

&lt;h3&gt;
  
  
  Workflows
&lt;/h3&gt;

&lt;p&gt;A workflow is a collection of jobs that are triggered by a specific event in your repository. Workflows are defined in YAML files and can contain one or more jobs. Workflows can be triggered by a variety of events, including push and pull request events, scheduled events, and more.&lt;/p&gt;

&lt;h3&gt;
  
  
  Jobs
&lt;/h3&gt;

&lt;p&gt;A job is a set of steps that are executed on the same runner. Jobs can run in parallel or sequentially, depending on your needs. Jobs are defined in the &lt;code&gt;jobs&lt;/code&gt; section of your workflow file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Steps
&lt;/h3&gt;

&lt;p&gt;A step is a single task that is executed by an action. Steps can be used to perform a wide range of tasks, such as checking out code, running tests, deploying code, and more. &lt;code&gt;Steps&lt;/code&gt; are defined in the steps section of your job.&lt;/p&gt;

&lt;h3&gt;
  
  
  Using pre-built actions
&lt;/h3&gt;

&lt;p&gt;One of the great things about GitHub Actions is that there are a lot of pre-built actions available in the GitHub Marketplace. These actions are reusable pieces of code that perform a specific task, such as deploying your code to AWS or sending a message to a Slack channel. Using&lt;/p&gt;

&lt;p&gt;pre-built actions can save you a lot of time and effort, as you don’t need to write the code yourself.&lt;/p&gt;

&lt;p&gt;To use a pre-built action, you simply need to reference it in your workflow file. Here’s an example of how you might use the &lt;code&gt;actions/setup-node&lt;/code&gt; action to set up Node.js in your workflow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name: Example workflow
on:
  push:
    branches:
      - main
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Set up Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '14.x'
      - name: Install dependencies
        run: npm install
      - name: Build and test
        run: |
          npm run build
          npm test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we are using the &lt;code&gt;actions/setup-node&lt;/code&gt; action to set up Node.js version 14.x. We then use the &lt;code&gt;npm&lt;/code&gt; command to install dependencies, build and test the application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating custom actions
&lt;/h2&gt;

&lt;p&gt;While there are many pre-built actions available in the GitHub Marketplace, there may be times when you need to create your own custom actions. Custom actions can be written in any language and can be used to perform a wide range of tasks.&lt;/p&gt;

&lt;p&gt;To create a custom action, you need to create a new repository that contains your action code. Your action code can be any executable command or script that performs a specific task.&lt;/p&gt;

&lt;p&gt;Here’s an example of how you might create a custom action that sends a message to a Slack channel:&lt;/p&gt;

&lt;p&gt;1.Create a new repository on GitHub for your action code.&lt;/p&gt;

&lt;p&gt;2.Create a new file called &lt;code&gt;Dockerfile&lt;/code&gt; in the root of your repository. This file will contain the instructions for building your action as a Docker container.&lt;/p&gt;

&lt;p&gt;3.Create a new file called &lt;code&gt;entrypoint.sh&lt;/code&gt; in the root of your repository. This file will contain the code that your action will execute.&lt;/p&gt;

&lt;p&gt;Build your action as a Docker container by running the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker build -t my-action .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;1.This will create a new Docker image called &lt;code&gt;my-action&lt;/code&gt; that contains your action code.&lt;br&gt;
2.Push your Docker image to a container registry such as Docker Hub or GitHub Container Registry.&lt;br&gt;
3.Create a new workflow file in your repository that uses your custom action. Here’s an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name: Example workflow
on:
  push:
    branches:
      - main
jobs:
  send-message:
    runs-on: ubuntu-latest
    steps:
      - name: Send message to Slack
        uses: docker://my-action
        with:
          SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
          MESSAGE: "Hello, world!"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;1.In this example, we are using our custom action to send a message to a Slack channel. We are passing in two inputs, &lt;code&gt;SLACK_WEBHOOK_URL&lt;/code&gt; and &lt;code&gt;MESSAGE&lt;/code&gt;, which are defined as secrets in our repository.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;GitHub Actions is a powerful tool for automating your software development workflows. With GitHub Actions, you can define custom workflows that are triggered by events in your repository and automate tasks such as running tests, deploying your application, and more. By using pre-built actions and creating your own custom actions, you can save time and effort and streamline your development workflow. We hope that this blog post has given you a good introduction to GitHub Actions and shown you how to get started with creating your own workflows.&lt;/p&gt;

&lt;h3&gt;
  
  
  THANK YOU FOR READING
&lt;/h3&gt;

&lt;p&gt;I hope you found this little article helpful. Please share it with your friends and colleagues. Sharing is caring.&lt;br&gt;
Please visit also my &lt;a href="https://www.oliver-joisten.se/blog/" rel="noopener noreferrer"&gt;website&lt;/a&gt; to read more informative blogposts&lt;br&gt;
Connect with me on &lt;a href="https://www.linkedin.com/in/oliver-joisten/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; to read more about C/C++, Git, Github, and more…!&lt;/p&gt;

</description>
      <category>ethics</category>
      <category>careeradvice</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Why Linux is the Go-To Operating System for Developers and Servers?</title>
      <dc:creator>R4V3N</dc:creator>
      <pubDate>Thu, 23 Feb 2023 18:58:58 +0000</pubDate>
      <link>https://forem.com/ther4v3n/why-linux-is-the-go-to-operating-system-for-developers-and-servers-297l</link>
      <guid>https://forem.com/ther4v3n/why-linux-is-the-go-to-operating-system-for-developers-and-servers-297l</guid>
      <description>&lt;p&gt;Looking for a reliable, customizable, and cost-effective server operating systems ? Look no further than Linux ! This open-source platform has become the go-to choice for developers and businesses alike, thanks to its stability, security, flexibility, and low resource usage.&lt;br&gt;
In my latest &lt;a href="https://www.oliver-joisten.se/why-linux-is-the-go-to-operating-system-for-developers-and-servers/"&gt;blog post&lt;/a&gt;, I explore the advantages of Linux for servers and developers, and why it continues to dominate the server market. From its availability of development tools to its compatibility with other open-source software, Linux offers a wide range of benefits that make it an ideal choice for a variety of use cases.&lt;br&gt;
So, whether you're a developer looking for a reliable operating system for your projects or a business in need of a server solution that won't break the bank, be sure to check out my latest blog post on why Linux is the go-to operating system for developers and servers.&lt;/p&gt;

&lt;h3&gt;
  
  
  THANK YOU FOR READING
&lt;/h3&gt;

&lt;p&gt;I hope you found this little article helpful. Please share it with your friends and colleagues. Sharing is caring.&lt;br&gt;
Please visit also my &lt;a href="https://www.oliver-joisten.se/blog/"&gt;website&lt;/a&gt; to read more informative blogposts&lt;br&gt;
Connect with me on &lt;a href="https://www.linkedin.com/in/oliver-joisten/"&gt;LinkedIn&lt;/a&gt; to read more about C/C++, Git, Github, and more…!&lt;/p&gt;

</description>
      <category>server</category>
      <category>operatingsystems</category>
      <category>developer</category>
      <category>linux</category>
    </item>
    <item>
      <title>Git 101: A Beginner’s Guide to Understanding and Using Git</title>
      <dc:creator>R4V3N</dc:creator>
      <pubDate>Wed, 22 Feb 2023 07:40:32 +0000</pubDate>
      <link>https://forem.com/ther4v3n/git-101-a-beginners-guide-to-understanding-and-using-git-4do0</link>
      <guid>https://forem.com/ther4v3n/git-101-a-beginners-guide-to-understanding-and-using-git-4do0</guid>
      <description>&lt;p&gt;Introduction&lt;br&gt;
Git is a distributed version control system that helps you track changes to your code over time. It’s used by software developers, web developers, and other professionals who work with code. Git makes it easy to collaborate with others on a project and keep track of changes to your codebase.&lt;/p&gt;

&lt;p&gt;With Git, you can:&lt;/p&gt;

&lt;p&gt;Keep track of changes to your code over time.&lt;br&gt;
Create branches to work on different parts of your codebase independently.&lt;br&gt;
Merge changes from different branches.&lt;br&gt;
Collaborate with others on a project.&lt;br&gt;
Installing Git&lt;br&gt;
To use Git, you need to install it on your computer. Here are the steps to install Git on Windows, Mac, and Linux.&lt;/p&gt;
&lt;h3&gt;
  
  
  Windows
&lt;/h3&gt;

&lt;p&gt;Go to the official Git website at &lt;a href="https://git-scm.com/"&gt;https://git-scm.com/&lt;/a&gt;.&lt;br&gt;
Click on the “Download” button to download the latest version of Git for Windows.&lt;br&gt;
Run the installer and follow the prompts to complete the installation.&lt;/p&gt;
&lt;h3&gt;
  
  
  Mac
&lt;/h3&gt;

&lt;p&gt;Using Homebrew&lt;br&gt;
Open Terminal on your Mac.&lt;br&gt;
Install Homebrew by running the following command: &lt;code&gt;/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”&lt;/code&gt;&lt;br&gt;
Install Git by running the following command: &lt;code&gt;brew install git&lt;/code&gt;&lt;br&gt;
Using MacPorts&lt;br&gt;
Open Terminal on your Mac.&lt;br&gt;
Install MacPorts by downloading the package installer from &lt;a href="https://www.macports.org/install.php."&gt;https://www.macports.org/install&lt;/a&gt;&lt;br&gt;
Install Git by running the following command: &lt;code&gt;sudo port install git&lt;/code&gt;&lt;br&gt;
Linux&lt;br&gt;
Ubuntu or Debian&lt;br&gt;
Open Terminal on your Linux machine.&lt;br&gt;
Run the following command to update your package list: &lt;code&gt;sudo apt-get update&lt;/code&gt;&lt;br&gt;
Install Git by running the following command: &lt;code&gt;sudo apt-get install git&lt;/code&gt;&lt;br&gt;
Fedora or CentOS&lt;br&gt;
Open Terminal on your Linux machine.&lt;br&gt;
Run the following command to update your package list: &lt;code&gt;sudo dnf update&lt;/code&gt;&lt;br&gt;
Install Git by running the following command: &lt;code&gt;sudo dnf install git&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Basic Git Concepts
&lt;/h2&gt;

&lt;p&gt;Git uses repositories to store your codebase. A repository is a directory where you store your code, along with all the history of changes to that code. A commit is a snapshot of your code at a specific point in time. When you make changes to your code, you create a new commit.&lt;/p&gt;

&lt;p&gt;You can create branches to work on different parts of your codebase independently. For example, you might create a branch to work on a new feature or fix a bug. When you’re ready to merge your changes back into the main branch, you can use the git merge command to combine the changes from different branches.&lt;/p&gt;
&lt;h2&gt;
  
  
  Git Commands
&lt;/h2&gt;

&lt;p&gt;Git has many commands, but you only need to know a few to get started. Here are some common Git commands and their uses:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;git add&lt;/strong&gt;&lt;br&gt;
Add changes to the staging area. The staging area is where you prepare changes to be committed. Use this command to tell Git which changes you want to commit.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git add &amp;lt;filename&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;git commit&lt;/strong&gt;&lt;br&gt;
Create a new commit with the changes in the staging area. When you create a commit, you’re creating a snapshot of your code at a specific point in time. Use this command to save your changes to your local repository.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git commit -m "commit message"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;git push&lt;/strong&gt;&lt;br&gt;
Upload your local commits to a remote repository. When you push your changes, you’re sharing them with others who have access to the remote repository.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git push origin &amp;lt;branch&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;git pull&lt;/strong&gt;&lt;br&gt;
Download changes from a remote repository to your local repository. When you pull changes, you’re updating your local repository with changes made by others.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git pull origin &amp;lt;branch&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;git branch&lt;/strong&gt;&lt;br&gt;
Create, list, or delete branches. Use this command to manage your branches.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git branch &amp;lt;branch_name&amp;gt;  # create a new branch
git branch  # list all branches
git branch -d &amp;lt;branch_name&amp;gt;  # delete a branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;git merge&lt;/strong&gt;&lt;br&gt;
Combine changes from different branches. Use this command to merge changes from one branch into another.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git merge &amp;lt;branch_name&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Working with Git
&lt;/h2&gt;

&lt;p&gt;Now that you understand the basic concepts and commands of Git, here are some tips for working with Git:&lt;/p&gt;
&lt;h3&gt;
  
  
  1. Create a new branch for each feature or bug fix
&lt;/h3&gt;

&lt;p&gt;Create a new branch for each feature or bug fix to keep your changes organized and to make it easier to merge changes later.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git branch &amp;lt;branch_name&amp;gt;
git checkout &amp;lt;branch_name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Commit often
&lt;/h3&gt;

&lt;p&gt;Committing often helps you track changes and roll back if something goes wrong.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add &amp;lt;filename&amp;gt;
git commit -m "commit message"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Pull changes frequently
&lt;/h3&gt;

&lt;p&gt;Pulling changes frequently helps you keep your local repository up-to-date with changes made by others.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git pull origin &amp;lt;branch_name&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Push changes regularly
&lt;/h3&gt;

&lt;p&gt;Pushing changes regularly helps you share your changes with others and keep everyone on the same page.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git push origin &amp;lt;branch_name&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Use descriptive commit messages
&lt;/h3&gt;

&lt;p&gt;Use descriptive commit messages to help others understand the changes you made.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git commit -m "Add login functionality"&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Git is a powerful tool for managing your codebase and collaborating with others. With Git, you can keep track of changes to your code over time, create branches to work on different parts of your codebase independently, merge changes from different branches, and collaborate with others on a project. By following best practices and using descriptive commit messages, you can make working with Git even more productive and efficient.&lt;/p&gt;

&lt;h3&gt;
  
  
  THANK YOU FOR READING
&lt;/h3&gt;

&lt;p&gt;I hope you found this little article helpful. Please share it with your friends and colleagues. Sharing is caring.&lt;br&gt;
Please visit also my &lt;a href="https://www.oliver-joisten.se/blog/"&gt;website&lt;/a&gt; to read more informative blogposts&lt;br&gt;
Connect with me on &lt;a href="https://www.linkedin.com/in/oliver-joisten/"&gt;LinkedIn&lt;/a&gt; to read more about C/C++, Git, Github, and more…!&lt;/p&gt;

</description>
      <category>git</category>
      <category>programming</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Using Linux on Windows with WSL 2: Tips on Installation and Usage</title>
      <dc:creator>R4V3N</dc:creator>
      <pubDate>Tue, 21 Feb 2023 18:40:19 +0000</pubDate>
      <link>https://forem.com/ther4v3n/using-linux-on-windows-with-wsl-2-tips-on-installation-and-usage-me4</link>
      <guid>https://forem.com/ther4v3n/using-linux-on-windows-with-wsl-2-tips-on-installation-and-usage-me4</guid>
      <description>&lt;p&gt;Windows has long been the go-to operating system for most PC users, thanks to its ease of use and broad compatibility with hardware and software. However, for those who are interested in the power and flexibility of Linux, there has always been a trade-off: either switch to Linux completely or set up a dual-boot system, which can be time-consuming and cumbersome. Fortunately, with the advent of Windows Subsystem for Linux (WSL) 2, you can now run Linux on your Windows machine, without having to sacrifice your Windows environment.&lt;/p&gt;

&lt;p&gt;What is WSL 2?&lt;br&gt;
WSL 2 is a feature in Windows 10 and 11 that allows you to run a Linux distribution directly on your Windows machine. Unlike a virtual machine, which emulates a separate operating system on top of your existing operating system, WSL 2 integrates Linux into Windows at a system call level, allowing for faster and more seamless performance.&lt;/p&gt;

&lt;p&gt;WSL 2 uses a lightweight virtual machine to run the Linux kernel, which means you can run a wide range of Linux applications and utilities, without having to install a full-blown Linux distribution. This makes it an ideal solution for developers, system administrators, and anyone who needs access to Linux tools and utilities on a Windows machine.&lt;/p&gt;

&lt;p&gt;Installation&lt;br&gt;
To get started with WSL 2, you need to enable it on your Windows machine. Here’s how:&lt;/p&gt;

&lt;p&gt;Make sure you’re running Windows 10 version 2004 or later.&lt;br&gt;
You can check this by going to Settings &amp;gt; System &amp;gt; About and looking under “Windows specifications”.&lt;br&gt;
Enable virtualization in your BIOS settings. Most modern CPUs support virtualization, but it may be disabled by default. You’ll need to check your motherboard manual or manufacturer’s website to find out how to enable virtualization.&lt;br&gt;
Enable WSL 2 in Windows.&lt;br&gt;
To do this, follow these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the Start menu and search for “Windows Features”.&lt;/li&gt;
&lt;li&gt;Select “Turn Windows Features on or off”.&lt;/li&gt;
&lt;li&gt;Scroll down to “Windows Subsystem for Linux” and check the box next to it.&lt;/li&gt;
&lt;li&gt;Scroll further down to “Virtual Machine Platform” and check that box too.&lt;/li&gt;
&lt;li&gt;Click “OK” and let Windows install the necessary components.
Install a Linux distribution from the Microsoft Store.
Some popular options include Ubuntu, Debian, and Kali Linux.
Once you’ve installed a distribution, launch it from the Start menu or by typing “wsl” into the command prompt.
Usage
After you’ve installed a Linux distribution, you can launch it from the Start menu or by typing “wsl” into the command prompt. When you launch a Linux distribution for the first time, you’ll be asked to create a username and password.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here are some tips to make the most of your Linux experience on Windows:&lt;/p&gt;

&lt;p&gt;Use the Windows Terminal:&lt;br&gt;
The Windows Terminal is a powerful tool that allows you to open multiple tabs and panes, and switch between them with ease.&lt;br&gt;
You can also customize the appearance and behavior of the Terminal to suit your needs.&lt;br&gt;
To install the Terminal, go to the Microsoft Store and search for “Windows Terminal”.&lt;br&gt;
Share files between Windows and Linux: By default, your Linux file system is isolated from your Windows file system. However, you can access your Windows files from within Linux by navigating to /mnt/c (or /mnt/d, /mnt/e, etc. for other drives). You can also access your Linux files from within Windows by going to \wsl$.&lt;br&gt;
Install your favorite Linux tools: One of the biggest advantages of using Linux on Windows is the ability to use Linux tools and utilities.&lt;br&gt;
You can use the apt-get package manager to install your favorite Linux programs, such as Git, Vim, and Node.js.&lt;br&gt;
To install a package, open the Terminal and type “sudo apt-get&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
WSL 2 is a powerful tool that allows Windows users to enjoy the benefits of Linux without having to give up their Windows environment. With the right setup and some basic Linux skills, you can use WSL 2 to run powerful Linux tools and utilities, share files between Windows and Linux, and even develop and deploy Linux-based applications on your Windows machine. Give it a try and see how much you can accomplish with this powerful combination of operating systems.&lt;/p&gt;

&lt;h3&gt;
  
  
  THANK YOU FOR READING
&lt;/h3&gt;

&lt;p&gt;I hope you found this little article helpful. Please share it with your friends and colleagues. Sharing is caring.&lt;br&gt;
Please visit also my &lt;a href="https://www.oliver-joisten.se/blog/"&gt;website&lt;/a&gt; to read more informative blogposts&lt;br&gt;
Connect with me on &lt;a href="https://www.linkedin.com/in/oliver-joisten/"&gt;LinkedIn&lt;/a&gt; to read more about C/C++, Git, Github, and more…!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>wsl</category>
      <category>tutorial</category>
      <category>ubuntu</category>
    </item>
    <item>
      <title>How to Create Your Own Commands in Linux</title>
      <dc:creator>R4V3N</dc:creator>
      <pubDate>Sun, 19 Feb 2023 13:57:15 +0000</pubDate>
      <link>https://forem.com/ther4v3n/how-to-create-your-own-commands-in-linux-3kgb</link>
      <guid>https://forem.com/ther4v3n/how-to-create-your-own-commands-in-linux-3kgb</guid>
      <description>&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%2F5mw0s4kckqho4qzjeaho.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%2F5mw0s4kckqho4qzjeaho.png" alt="Alias Commands Brief" width="800" height="559"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this article, we will discuss the process of creating customized Linux commands. This is an essential skill for Linux users, as it can greatly enhance their productivity and efficiency when working in the command line interface. By following the steps outlined in this guide, you will learn how to create personalized commands that suit your specific needs and preferences. So if you’re ready to take your Linux skills to the next level, read on and discover the power of creating your own Linux commands.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are Alias commands in Linux?
&lt;/h2&gt;

&lt;p&gt;The alias command is a powerful tool in the Linux command line that can help you save time and effort. With it, you can create customized shortcuts for frequently used commands, making them much easier to remember and use. Essentially, the alias command provides a string value that replaces a command name when it is entered. The best part? These shortcuts have the same functionality as the full commands they represent, making your workflow more efficient and enjoyable.&lt;/p&gt;

&lt;p&gt;So, if you’re tired of typing out long and complex commands every time you need to perform a task, why not give the alias command a try? You may just find that it adds a whole new level of convenience and fun to your Linux experience!&lt;/p&gt;

&lt;p&gt;How to Create Your Own Linux Commands&lt;br&gt;
By utilizing the alias command, you can create your own custom commands in a straightforward and efficient manner.&lt;/p&gt;

&lt;p&gt;This is a valuable skill that can significantly streamline your Linux workflow and enhance your productivity. The syntax for the alias command is as follows:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;alias [alias-name[=string]...]&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;To illustrate the process of creating your own custom command, consider the following example.&lt;/p&gt;

&lt;p&gt;Suppose you wish to create a command named “cdv” that instantly takes you to the Videos directory when entered in the terminal.&lt;/p&gt;

&lt;p&gt;Typically, navigating to a directory requires using the “cd” command followed by the directory name. However, in this case, we can simplify the process by creating an alias command that directly takes you to the desired directory. As demonstrated in the accompanying screenshot:&lt;/p&gt;

&lt;p&gt;Terminal command to navigate to Videos directory&lt;br&gt;
Let’s create our command called cdv to navigate to the Videos directory.&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%2Fpbyl4s2rh6lysptappoq.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%2Fpbyl4s2rh6lysptappoq.png" alt="Terminal image 1" width="786" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To achieve that, you have to enter the following command in your terminal:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;alias cdv="cd Videos"&lt;/code&gt;&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%2F8lvpet3txpsk3s0hahm7.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%2F8lvpet3txpsk3s0hahm7.png" alt="Terminal 2" width="786" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Terminal (alias) command to create our own command&lt;br&gt;
We have created our command. From the above screenshot, you can see that it does not return anything.&lt;/p&gt;

&lt;p&gt;But, how can we verify that the command is created and it is working?&lt;/p&gt;

&lt;p&gt;There’s only one way to verify if the command is working: that’s by executing the created command.&lt;/p&gt;

&lt;p&gt;Run the cdv command on your terminal to see what happens:&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%2Fhk91eii1cyhwm9283il4.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%2Fhk91eii1cyhwm9283il4.png" alt="Terminal 3" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run the created cdv command&lt;br&gt;
And with that, you have successfully created your own custom command. Congratulations! This newfound skill can greatly improve your efficiency and productivity in the Linux command line interface. So take pride in your accomplishment and keep exploring the possibilities of customizing your commands.&lt;/p&gt;

&lt;p&gt;How to Show your created Alias Commands&lt;br&gt;
You may have the following question after creating a few commands:&lt;/p&gt;

&lt;p&gt;Let’s assume I created multiple alias commands. How can I view all of them together? How can I view the equivalent command of my alias?&lt;/p&gt;

&lt;p&gt;You can view all your alias commands by appending the -p flag to the alias command like this:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;alias -p&lt;/code&gt;&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%2Fgb7k7xnbi75gs0jf3a62.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%2Fgb7k7xnbi75gs0jf3a62.png" alt="Terminal 4" width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
Terminal command to view all the created alias commands&lt;br&gt;
How to Remove an Alias Command in Linux&lt;/p&gt;

&lt;p&gt;Pass your alias name to the unalias command as an argument to remove the alias command.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;unalias alias_name&lt;/code&gt;&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%2F36ui111p5avkfxh4320u.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%2F36ui111p5avkfxh4320u.png" alt="Terminal 5" width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
Terminal command (unalias) to remove an alias command&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Remove All Alias Commands in Linux
&lt;/h2&gt;

&lt;p&gt;Let’s assume you have added around 20 alias commands. After some time, you realized that using alias commands will make you forget other commands in the long term. Fearing that, you wish to remove all the alias commands.&lt;/p&gt;

&lt;p&gt;We have a command to achieve that:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;unalias -a&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You may be curious to know more about one thing that I’ve written in the above passage.&lt;/p&gt;

&lt;p&gt;“After some time, you realized that using alias commands will make you forget other commands in the long term”&lt;/p&gt;

&lt;p&gt;Is this something you should worry about? Can this happen?&lt;/p&gt;

&lt;p&gt;The answer to your first question is, yes. Definitely, you’ll get this feeling when you’re learning and trying out alias commands. Because I had the same feeling.&lt;/p&gt;

&lt;p&gt;The answer to your second question is, absolutely no. This will result in increased productivity. There’s a high chance that you’ll forget the command you created but you’ll never forget the original command. So I always recommend revisiting your alias commands often and ensure you’re using all the alias commands you created.&lt;/p&gt;

&lt;p&gt;I have a shocking surprise for you. Open a terminal window and create an alias command (we’ll use the cdv command we created above). Open another terminal window and type the cdv command there.&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%2Fhzn5m6nkuvhrljdbnfdo.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%2Fhzn5m6nkuvhrljdbnfdo.png" alt="Terminal6" width="800" height="387"&gt;&lt;/a&gt;&lt;br&gt;
Terminal command showing the output of non-existing alias command&lt;br&gt;
Surprised?&lt;/p&gt;

&lt;p&gt;Yes. If you create an alias command, it’ll be active only for the particular instance of the terminal. It’ll not be created permanently, so you won’t be able to access it in two different terminal windows unless you run the alias command on both terminals.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Create a Permanent Alias Command
&lt;/h2&gt;

&lt;p&gt;To create a permanent alias command, you have to add the alias command to the shell configuration file. There are many shell configurations available. A few of the well-known shells are:&lt;/p&gt;

&lt;p&gt;Bash – ~/.bashrc&lt;br&gt;
Zsh – ~/.zshrc&lt;br&gt;
Fish – ~/.config/fish/config.fish&lt;br&gt;
Most Linux distros work with bash, so let’s look at creating a permanent alias in the bash shell. Other shells work pretty much the same.&lt;/p&gt;

&lt;p&gt;Let’s open the .bashrc file using nano.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo nano ~/.bashrc&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Navigate to the bottom of the file. Add the alias command you want to add permanently.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;alias cdv="cd Videos"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Save and exit nano by pressing the Ctrl and x key.&lt;/p&gt;

&lt;p&gt;Every time you make a change to the shell configuration file, you have to reload the file again for your changes to take effect immediately.&lt;/p&gt;

&lt;p&gt;All the terminal windows you open from now will contain your alias command by default.&lt;/p&gt;

&lt;p&gt;You may open multiple windows and check by entering the alias -p command.&lt;/p&gt;

&lt;h2&gt;
  
  
  Some Helpful Alias Commands to Try
&lt;/h2&gt;

&lt;p&gt;Here’s a bonus for you all.&lt;/p&gt;

&lt;p&gt;You can either follow the instructions in the README file of &lt;a href="https://github.com/gogosoon/x-commands" rel="noopener noreferrer"&gt;this&lt;/a&gt; repo or follow the instructions below to set up the alias commands on your machine.&lt;/p&gt;

&lt;p&gt;Navigate to the Home folder&lt;br&gt;
Navigate to home directory&lt;/p&gt;

&lt;p&gt;cd ~/&lt;br&gt;
Clone the repo&lt;br&gt;
Clone the alias commands repo from GitHub:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git clone https://github.com/gogosoon/x-commands.git&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Add a reference to the alias command file&lt;br&gt;
Open the ~/.bashrc file using nano:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo nano ~/.bashrc&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Add the following line at the end of the file:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;source ~/x-commands/aliasCommands.sh&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Save and exit nano by pressing the Ctrl and x key.&lt;/p&gt;

&lt;p&gt;Reload the terminal&lt;br&gt;
Reload the terminal by running the following command:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;source ~/.bashrc&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;That’s it. You’re all set. To verify that the setup is done and it’s up and running, run the following command in the terminal:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;welcome&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You’ll be asked to enter your name. Type your name and press Enter.&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%2Fdppz7wej1ulplhao7vgo.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%2Fdppz7wej1ulplhao7vgo.png" alt="Terminal7" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You’ve installed it the right way if you get the above message.&lt;/p&gt;

&lt;p&gt;Let me explain the alias commands you’ll have access to using this repo.&lt;/p&gt;

&lt;p&gt;Unfortunately i cant post a table here the explanation is postet on &lt;a href="https://www.oliver-joisten.se/how-to-create-your-own-commands-in-linux/" rel="noopener noreferrer"&gt;my site.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you look at the aliasCommands.sh file carefully, you’ll see that I’ve added a few functions. You may wonder why I use functions. Read more to have a quick dive into this topic.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Run Multiple Commands in a Single Alias Command
&lt;/h2&gt;

&lt;p&gt;You can achieve this in 2 ways. Let me explain both of them here.&lt;br&gt;
Let’s learn this with an example.&lt;/p&gt;

&lt;p&gt;Say you have to create an alias command called gohome. Running this command should take you to the home directory and display the “Navigated to home directory” message.&lt;/p&gt;

&lt;h2&gt;
  
  
  Method #1:
&lt;/h2&gt;

&lt;p&gt;This way is the usual way of adding an alias command. You have to add the two commands separated by a semicolon (;).&lt;/p&gt;

&lt;p&gt;&lt;code&gt;alias gohome="cd ~/;echo Navigated to home directory"&lt;/code&gt;&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%2F3t3bhu0g9ub7a5iti92q.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%2F3t3bhu0g9ub7a5iti92q.png" alt="Terminal 8" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Method #2
&lt;/h2&gt;

&lt;p&gt;This is a bit of a different way. To achieve this you have to make a change in your .bashrc file. You have to define a function in the .bashrc file with all the commands nested within it.&lt;/p&gt;

&lt;p&gt;Open the .bashrc file using nano.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo nano ~/.bashrc&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Create a function named gohome with the above 2 commands.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;function gohome() {&lt;br&gt;
        cd ~/&lt;br&gt;
        echo Navigated to home directory&lt;br&gt;
}&lt;/code&gt;&lt;br&gt;
Save and exit nano by pressing the Ctrl and x key.&lt;/p&gt;

&lt;p&gt;Reload the terminal by running source ~/.bashrc and you’ll be able to verify the gohome command now.&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%2F1pj6z8le5so0gnttgln2.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%2F1pj6z8le5so0gnttgln2.png" alt="Terminal 9" width="800" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: Creating a function will not list it as an alias command on running the alias -p command.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
In this article, you learned how to create your own commands in Linux.&lt;/p&gt;

&lt;p&gt;Using an alias command will definitely increase your productivity. I’ve witnessed exponential growth in many people after seeing them using alias commands. I would recommend that you all setup your own alias commands.&lt;/p&gt;

&lt;h3&gt;
  
  
  THANK YOU FOR READING
&lt;/h3&gt;

&lt;p&gt;I hope you found this little article helpful. Please share it with your friends and colleagues. Sharing is caring.&lt;br&gt;
Please visit also my &lt;a href="https://www.oliver-joisten.se/blog/" rel="noopener noreferrer"&gt;website&lt;/a&gt; to read more informative blogposts&lt;br&gt;
Connect with me on &lt;a href="https://www.linkedin.com/in/oliver-joisten/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; to read more about C/C++, Git, Github, and more…!&lt;/p&gt;

</description>
      <category>welcome</category>
      <category>discuss</category>
      <category>community</category>
    </item>
    <item>
      <title>10 Essential Clean Coding Techniques</title>
      <dc:creator>R4V3N</dc:creator>
      <pubDate>Mon, 06 Feb 2023 07:41:15 +0000</pubDate>
      <link>https://forem.com/ther4v3n/10-essential-clean-coding-techniques-1d55</link>
      <guid>https://forem.com/ther4v3n/10-essential-clean-coding-techniques-1d55</guid>
      <description>&lt;p&gt;Here are 10 critical techniques for writing clean, organized, and understandable code in any programming language:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Keep it Simple&lt;br&gt;
The first and most important rule of writing clean code is to keep it simple and readable. As the saying goes, “Keep It Simple, Stupid”. The simpler your code is, the fewer errors it will have and the easier it will be for others to understand. Writing clean code is an art, but it’s crucial to remember that code is not a canvas for your creativity. Rather, it’s a tool for solving problems. By keeping your code simple, you’ll reduce the risk of introducing bugs and make it easier for other developers to work with your code&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Develop Processes and Follow Them&lt;br&gt;
As your code gets more complex, you’ll face challenging problems. The best way to tackle these problems is to break them down into smaller, more manageable parts and develop a process for solving each part. Over time, you’ll develop a set of processes that work for you, and your code will become cleaner and more efficien&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Comments Are For Winners&lt;br&gt;
As you gain more experience as a programmer, it’s easy to forget one of the most fundamental tips: leave comments in your code. Comments are important in any programming language. They make updating, debugging, and analyzing your code much easier and more efficient. Comments are also critical when other developers need to work on your code. So, make it a habit to leave comments in your code, explaining what you’re doing and why.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keep it Small&lt;br&gt;
Writing a 10,000 line code doesn’t make you a great developer. Reducing a 10,000 line code to something smaller, without sacrificing functionality, does. To keep your code small, avoid repeating code and use programming tools such as functions, objects, and arrays effectively. Optimizing your code is what sets great developers apart from good ones.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mind Your Indentation&lt;br&gt;
Indentation is essential for organizing and structuring your code, especially when you’re working on a team. Think of your code as a grocery store. If all the dairy products aren’t in one section, it can be tough to find the milk. The same is true for your code. If you don’t indent your code properly, it can be difficult to understand and work with.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use Proper Naming Conventions&lt;br&gt;
This is one tip that keeps popping up in nearly every discussion about the correct way of working on any programming language, and still people tend to forget or neglect it. Using proper naming conventions is a critical part of writing clean code. It makes it easier for other developers to understand your code and reduces the risk of introducing bugs. Make sure to name elements based on what they are and maintain a consistent naming convention throughout your code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Explore and Learn&lt;br&gt;
Become your own teacher and explore as much as you can. There are &lt;br&gt;
plenty of online courses and experienced developers who share &lt;br&gt;
their insights. The more you code, the better you’ll get. So, &lt;br&gt;
never stop learning. Always look for opportunities to explore new &lt;br&gt;
techniques and improve your skills.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use Your Brain&lt;br&gt;
Instead of copying and pasting code from other sources, use your brain. Optimize the code you have and work through problems on your own. By using others’ code, you might get a quick fix, but you won’t learn how to write clean code until you use your brain.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test, Test, Test&lt;br&gt;
Running into bugs in your code is absolutely frustrating, but it obviously will happen. To reduce these situations, test your code often. It takes time to run tests which is why some coders don’t do it, but I guarantee it will save work in the long run.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Play with Code&lt;br&gt;
Being a great developer is both an art and a science. You must practice writing code and learn new programming languages. Humans generally learn best by doing, and from what we can tell of the animal world at large, play is a huge part of learning. Play will result in failure, but play also allows us a fun opportunity to try again and again until we get it right. Play with code like it’s a toy, enjoy what you do, and it will translate into making you a better coder. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  THANK YOU FOR READING
&lt;/h3&gt;

&lt;p&gt;I hope you found this little article helpful. Please share it with your friends and colleagues. Sharing is caring.&lt;br&gt;
Please visit also my &lt;a href="https://www.oliver-joisten.se/blog/"&gt;website&lt;/a&gt; to read more informative blogposts&lt;br&gt;
Connect with me on &lt;a href="https://www.linkedin.com/in/oliver-joisten/"&gt;LinkedIn&lt;/a&gt; to read more about C/C++, Git, Github, and more…!&lt;/p&gt;

</description>
      <category>cleancode</category>
      <category>beginners</category>
      <category>programming</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>The Importance of Writing Clean Code</title>
      <dc:creator>R4V3N</dc:creator>
      <pubDate>Mon, 06 Feb 2023 07:32:07 +0000</pubDate>
      <link>https://forem.com/ther4v3n/the-importance-of-writing-clean-code-3il5</link>
      <guid>https://forem.com/ther4v3n/the-importance-of-writing-clean-code-3il5</guid>
      <description>&lt;p&gt;Writing clean code is a crucial aspect of software development that ensures the longevity and maintainability of a project. Clean code is characterized by clear, concise, and self-explanatory variable and function names, as well as well-organized and consistent indentation and spacing. The purpose of this blog post is to explore the importance of writing clean code and provide examples to illustrate the concepts.&lt;/p&gt;

&lt;p&gt;The Benefits of Clean Code&lt;br&gt;
One of the main benefits of clean code is its ability to improve the readability and understandability of the code. This is particularly important when working on a team, as it allows other developers to quickly understand the purpose and logic behind the code. In addition to improving readability, clean code also helps to prevent bugs and errors, as well as making it easier to test and debug. Clean code also ensures that the code is maintainable over time, making it easier to add new features and fix bugs, as well as to make performance improvements and update libraries and dependencies.&lt;/p&gt;

&lt;p&gt;Examples of Clean Code&lt;br&gt;
Let’s consider the following example in C:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main()
{
    int x, y, z;
    scanf("%d%d", &amp;amp;x, &amp;amp;y);
    z = x + y;
    printf("%d", z);
    return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;While this code may work as expected, it is not considered clean code. The variable names, x, y, and z, do not provide any context for their purpose, making it difficult for others to understand the code. In addition, there is no proper indentation or whitespace, making the code appear cluttered and difficult to read.&lt;/p&gt;

&lt;p&gt;Now, let’s consider a cleaned up version of the same code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`#include &amp;lt;stdio.h&amp;gt;

int addNumbers(int firstNum, int secondNum) {
  return firstNum + secondNum;
}

int main() {
  int firstNumber, secondNumber, result;
  printf("Enter two numbers: ");
  scanf("%d%d", &amp;amp;firstNumber, &amp;amp;secondNumber);

  result = addNumbers(firstNumber, secondNumber);
  printf("The result of adding the two numbers is: %d", result);

  return 0;
}`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this version, the variable names are descriptive and provide context for their purpose. The function addNumbers is also named in a descriptive manner, and its purpose is clear. In addition, proper indentation and whitespace make the code easier to read and understand.&lt;/p&gt;

&lt;p&gt;The same principles of clean code apply to C++ code as well. By following best practices for writing clean code, C and C++ developers can ensure that their projects are readable, maintainable, and of high quality.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
In conclusion, writing clean code is essential for ensuring the longevity and maintainability of software projects. Clean code improves readability, reduces bugs and errors, makes it easier to test and debug,&lt;/p&gt;

&lt;h3&gt;
  
  
  THANK YOU FOR READING
&lt;/h3&gt;

&lt;p&gt;I hope you found this little article helpful. Please share it with your friends and colleagues. Sharing is caring.&lt;br&gt;
Please visit also my &lt;a href="https://www.oliver-joisten.se/blog/" rel="noopener noreferrer"&gt;website&lt;/a&gt; to read more informative blogposts&lt;br&gt;
Connect with me on &lt;a href="https://www.linkedin.com/in/oliver-joisten/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; to read more about C/C++, Git, Github, and more…!&lt;/p&gt;

</description>
      <category>goodjob</category>
      <category>gratitude</category>
    </item>
  </channel>
</rss>
