<?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: LabEx</title>
    <description>The latest articles on Forem by LabEx (@labex).</description>
    <link>https://forem.com/labex</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%2Forganization%2Fprofile_image%2F8995%2F715cc2d8-2659-45f0-994c-c1c271f135d0.jpg</url>
      <title>Forem: LabEx</title>
      <link>https://forem.com/labex</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/labex"/>
    <language>en</language>
    <item>
      <title>Master NumPy: 4 Essential Labs for Statistics, Sorting, and Linear Algebra</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Sun, 10 May 2026 17:17:59 +0000</pubDate>
      <link>https://forem.com/labex/master-numpy-4-essential-labs-for-statistics-sorting-and-linear-algebra-2gkg</link>
      <guid>https://forem.com/labex/master-numpy-4-essential-labs-for-statistics-sorting-and-linear-algebra-2gkg</guid>
      <description>&lt;p&gt;NumPy is the backbone of the Python data science ecosystem. If you are looking to move beyond basic lists and start performing high-performance numerical computations, this structured learning path is your perfect starting point. We have curated four hands-on labs that take you from basic statistical analysis to complex linear algebra, ensuring you gain the practical skills needed for real-world data manipulation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sorting and Searching
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fnumpy-sorting-and-searching-154566" 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%2Fog-image.labex.io%2Flabs%2Fnumpy-sorting-and-searching-154566" alt="Sorting and Searching" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 30 minutes&lt;/p&gt;

&lt;p&gt;Welcome to the NumPy Sorting and Searching Challenge! This challenge is designed to test your skills in implementing advanced algorithms with NumPy, a powerful library used for numerical computations in Python. Your task is to solve a series of sub-challenges that will involve both sorting and searching algorithms at a high level of complexity. Your solutions should be optimized and make effective use of the functionalities provided by the NumPy library.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/numpy-sorting-and-searching-154566" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/numpy-sorting-and-searching-154566" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Linear Algebra Solving with NumPy
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fnumpy-linear-algebra-solving-with-numpy-8000" 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%2Fog-image.labex.io%2Flabs%2Fnumpy-linear-algebra-solving-with-numpy-8000" alt="Linear Algebra Solving with NumPy" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 30 minutes&lt;/p&gt;

&lt;p&gt;In this challenge, you are tasked with writing a Python program that utilizes the NumPy and Linear Algebra libraries to perform matrix inversion. Matrix inversion is a common technique used in linear algebra, and it is useful in many areas of science and engineering.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/numpy-linear-algebra-solving-with-numpy-8000" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/numpy-linear-algebra-solving-with-numpy-8000" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  NumPy List Value Statistics
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fnumpy-numpy-list-value-statistics-664" 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%2Fog-image.labex.io%2Flabs%2Fnumpy-numpy-list-value-statistics-664" alt="NumPy List Value Statistics" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 15 minutes&lt;/p&gt;

&lt;p&gt;In this challenge, you will create a Python program using the NumPy library to perform various statistical operations on a list of values. The program will contain multiple sub-challenges that will test your knowledge and understanding of NumPy and its capabilities.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/numpy-numpy-list-value-statistics-664" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/numpy-numpy-list-value-statistics-664" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  NumPy Dot Product
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fnumpy-numpy-dot-product-8737" 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%2Fog-image.labex.io%2Flabs%2Fnumpy-numpy-dot-product-8737" alt="NumPy Dot Product" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 5 minutes&lt;/p&gt;

&lt;p&gt;Welcome to the NumPy Dot Challenge! In this challenge, you will be testing your skills in NumPy's dot function, which performs matrix multiplication. The challenge is designed to help you strengthen your skills in using the dot function to solve real-world problems.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/numpy-numpy-dot-product-8737" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/numpy-numpy-dot-product-8737" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These four labs are designed to bridge the gap between theoretical knowledge and practical application. By completing these exercises, you will not only understand how NumPy works under the hood but also gain the confidence to apply these techniques to your own data projects. Dive into the playground today and start building your expertise in scientific computing.&lt;/p&gt;

</description>
      <category>numpy</category>
      <category>python</category>
      <category>datascience</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>4 Practical Python Challenges: File Handling, Filtering, and List Logic</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Sat, 09 May 2026 17:17:26 +0000</pubDate>
      <link>https://forem.com/labex/4-practical-python-challenges-file-handling-filtering-and-list-logic-4okj</link>
      <guid>https://forem.com/labex/4-practical-python-challenges-file-handling-filtering-and-list-logic-4okj</guid>
      <description>&lt;p&gt;Ready to level up your Python game? Forget boring theory. We have curated four bite-sized, hands-on labs that turn abstract concepts into real-world problem-solving skills. Whether you are just starting or looking to polish your logic, these exercises are designed to get you coding immediately in an interactive environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  File Is Empty or Not
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fpython-file-is-empty-or-not-56197" 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%2Fog-image.labex.io%2Flabs%2Fpython-file-is-empty-or-not-56197" alt="File Is Empty or Not" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 5 minutes&lt;/p&gt;

&lt;p&gt;This program checks if a given file is empty or not. If the file is empty, it will print a message to indicate the same.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/python-file-is-empty-or-not-56197" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/python-file-is-empty-or-not-56197" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Filtering Words by Excluding Characters
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fpython-filtering-words-by-excluding-characters-108357" 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%2Fog-image.labex.io%2Flabs%2Fpython-filtering-words-by-excluding-characters-108357" alt="Filtering Words by Excluding Characters" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 5 minutes&lt;/p&gt;

&lt;p&gt;In this lab, we need to write a Python function called remove_words_with_chars() which takes a sentence and a list of characters as input. The function should remove any words from the sentence that contain any characters from the given character list. If the sentence has no remaining words after removing the specified characters, the function should return -1.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/python-filtering-words-by-excluding-characters-108357" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/python-filtering-words-by-excluding-characters-108357" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Find Common Elements in Lists
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fpython-find-common-elements-in-lists-108363" 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%2Fog-image.labex.io%2Flabs%2Fpython-find-common-elements-in-lists-108363" alt="Find Common Elements in Lists" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 5 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you need to define a function named find_common_elements() which takes two integer lists as input, finds the common elements, and returns them in ascending order.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/python-find-common-elements-in-lists-108363" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/python-find-common-elements-in-lists-108363" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Find Clone Soldiers
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fpython-find-clone-soldiers-60" 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%2Fog-image.labex.io%2Flabs%2Fpython-find-clone-soldiers-60" alt="Find Clone Soldiers" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 5 minutes&lt;/p&gt;

&lt;p&gt;In the distant galaxy, there is a Galactic Empire, they have a powerful clone army. The challenge mission is to find all the clone soldiers on the parade ground of the clone army of the Galactic Empire.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/python-find-clone-soldiers-60" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/python-find-clone-soldiers-60" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These labs are more than just exercises; they are your playground to build muscle memory in Python. Each 5-minute challenge brings you one step closer to writing clean, professional-grade code. Jump into the LabEx Python path now and start building your portfolio one line at a time!&lt;/p&gt;

</description>
      <category>python</category>
      <category>coding</category>
      <category>tutorial</category>
      <category>programming</category>
    </item>
    <item>
      <title>Master C++ Logic: Solve Serial Numbers, Max Values, and Letter Encryption</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Fri, 08 May 2026 17:30:11 +0000</pubDate>
      <link>https://forem.com/labex/master-c-logic-solve-serial-numbers-max-values-and-letter-encryption-4p08</link>
      <guid>https://forem.com/labex/master-c-logic-solve-serial-numbers-max-values-and-letter-encryption-4p08</guid>
      <description>&lt;p&gt;Ready to sharpen your C++ skills? Whether you are just starting out or looking to reinforce your fundamentals, our curated C++ learning path is designed to take you from zero to hero. We believe the best way to learn is by doing, so we have hand-picked three bite-sized coding challenges that will help you master essential logic, input handling, and character manipulation in just minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Output the Last Serial Number
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fcpp-output-the-last-serial-number-298186" 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%2Fog-image.labex.io%2Flabs%2Fcpp-output-the-last-serial-number-298186" alt="Output the Last Serial Number" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 5 minutes&lt;/p&gt;

&lt;p&gt;In this challenge, you are asked to write a C program that simulates a group of 13 people standing in a circle. Starting from the first person, they count 1, 2, 3 in order, and the ones who reach 3 will leave the circle. The goal is to find the serial number of the last person remaining in the circle, and implement this using a linked list.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/cpp-output-the-last-serial-number-298186" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/cpp-output-the-last-serial-number-298186" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Output the Maximum Value
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fcpp-output-the-maximum-value-298187" 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%2Fog-image.labex.io%2Flabs%2Fcpp-output-the-maximum-value-298187" alt="Output the Maximum Value" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 5 minutes&lt;/p&gt;

&lt;p&gt;In this challenge, you are asked to write a C program that takes three integer values as input and outputs the maximum of the three. The program should use the &lt;code&gt;scanf&lt;/code&gt; function to handle keyboard input and implement the logic to determine the maximum value.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/cpp-output-the-maximum-value-298187" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/cpp-output-the-maximum-value-298187" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Output the Encrypted Letters
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fcpp-output-the-encrypted-letters-298185" 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%2Fog-image.labex.io%2Flabs%2Fcpp-output-the-encrypted-letters-298185" alt="Output the Encrypted Letters" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 5 minutes&lt;/p&gt;

&lt;p&gt;In this challenge, you are asked to write a C program that translates the word 'LabEx' into an encrypted password. The encryption rule is to replace each letter with the 4th letter after the original letter. You will use both the &lt;code&gt;putchar&lt;/code&gt; and &lt;code&gt;printf&lt;/code&gt; functions to output the 5 encrypted characters.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/cpp-output-the-encrypted-letters-298185" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/cpp-output-the-encrypted-letters-298185" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These three labs are just the beginning of your journey. By tackling these practical problems, you are building the muscle memory needed to write robust and efficient code. Don't just read about C++—jump into the playground and start coding today. Your path to becoming a C++ expert starts with that first line of code!&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>programming</category>
      <category>tutorial</category>
      <category>coding</category>
    </item>
    <item>
      <title>Master Docker Troubleshooting: Fix Buildx, Compose, and API Errors with AI Integration Labs</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Thu, 07 May 2026 17:32:06 +0000</pubDate>
      <link>https://forem.com/labex/master-docker-troubleshooting-fix-buildx-compose-and-api-errors-with-ai-integration-labs-nmi</link>
      <guid>https://forem.com/labex/master-docker-troubleshooting-fix-buildx-compose-and-api-errors-with-ai-integration-labs-nmi</guid>
      <description>&lt;p&gt;Docker has become the backbone of modern DevOps, but mastering it requires more than just theory. Whether you are struggling with cryptic build errors or looking to integrate cutting-edge AI into your workflow, our curated Docker learning path offers a hands-on approach to solving real-world problems. Dive into these interactive labs designed to sharpen your containerization skills and streamline your development environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instant Claude Computer Use Demo
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fdocker-instant-claude-computer-use-demo-414899" 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%2Fog-image.labex.io%2Flabs%2Fdocker-instant-claude-computer-use-demo-414899" alt="Instant Claude Computer Use Demo" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 14 minutes&lt;/p&gt;

&lt;p&gt;This lab provides a streamlined experience to explore Claude 3.5 Sonnet's computer interaction capabilities using the pre-installed Anthropic Computer Use Demo in LabEx&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/docker-instant-claude-computer-use-demo-414899" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/docker-instant-claude-computer-use-demo-414899" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started with Claude's Computer Use Demo
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fdocker-getting-started-with-claude-s-computer-use-demo-414860" 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%2Fog-image.labex.io%2Flabs%2Fdocker-getting-started-with-claude-s-computer-use-demo-414860" alt="Getting Started with Claude's Computer Use Demo" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 20 minutes&lt;/p&gt;

&lt;p&gt;Experience new Claude 3.5 Sonnet's groundbreaking computer interaction capabilities through Anthropic's official Computer Use Demo. This practical tutorial guides you through setting up and exploring Claude's ability to understand and execute real computer tasks in a controlled environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/docker-getting-started-with-claude-s-computer-use-demo-414860" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/docker-getting-started-with-claude-s-computer-use-demo-414860" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Resolve the Docker Buildx Build Requires Exactly 1 Argument Issue
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fdocker-how-to-resolve-the-docker-buildx-build-requires-exactly-1-argument-issue-411653" 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%2Fog-image.labex.io%2Flabs%2Fdocker-how-to-resolve-the-docker-buildx-build-requires-exactly-1-argument-issue-411653" alt="How to Resolve the Docker Buildx Build Requires Exactly 1 Argument Issue" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 20 minutes&lt;/p&gt;

&lt;p&gt;Discover how to troubleshoot the "docker buildx build requires exactly 1 argument" issue and find practical workarounds to streamline your Docker build process. Learn the ins and outs of Docker Buildx for seamless multi-architecture builds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/docker-how-to-resolve-the-docker-buildx-build-requires-exactly-1-argument-issue-411653" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/docker-how-to-resolve-the-docker-buildx-build-requires-exactly-1-argument-issue-411653" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Fix Unable to Locate Docker Compose Plugin Error
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fdocker-how-to-fix-unable-to-locate-docker-compose-plugin-error-413758" 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%2Fog-image.labex.io%2Flabs%2Fdocker-how-to-fix-unable-to-locate-docker-compose-plugin-error-413758" alt="How to Fix Unable to Locate Docker Compose Plugin Error" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 20 minutes&lt;/p&gt;

&lt;p&gt;Resolve the "unable to locate package docker-compose-plugin" error and learn how to properly set up Docker Compose on your system. Follow this step-by-step guide to get your Docker environment up and running.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/docker-how-to-fix-unable-to-locate-docker-compose-plugin-error-413758" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/docker-how-to-fix-unable-to-locate-docker-compose-plugin-error-413758" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Troubleshooting Docker API Context Deadline Exceeded Errors
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fdocker-troubleshooting-docker-api-context-deadline-exceeded-errors-413831" 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%2Fog-image.labex.io%2Flabs%2Fdocker-troubleshooting-docker-api-context-deadline-exceeded-errors-413831" alt="Troubleshooting Docker API Context Deadline Exceeded Errors" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 20 minutes&lt;/p&gt;

&lt;p&gt;Explore the causes and solutions for the "running engine: waiting for the docker api: context deadline exceeded" error when working with Docker. Learn how to identify and resolve this issue to ensure smooth Docker operations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/docker-troubleshooting-docker-api-context-deadline-exceeded-errors-413831" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/docker-troubleshooting-docker-api-context-deadline-exceeded-errors-413831" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mastering Docker is a journey of continuous learning and troubleshooting. By tackling these specific, real-world scenarios, you move beyond basic commands and gain the confidence to manage complex containerized environments. Ready to level up your DevOps game? Jump into these labs today and start building with confidence.&lt;/p&gt;

</description>
      <category>docker</category>
      <category>devops</category>
      <category>troubleshooting</category>
      <category>ai</category>
    </item>
    <item>
      <title>Master Red Hat Enterprise Linux: Essential Skills for System Administrators</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Wed, 06 May 2026 17:30:21 +0000</pubDate>
      <link>https://forem.com/labex/master-red-hat-enterprise-linux-essential-skills-for-system-administrators-46b3</link>
      <guid>https://forem.com/labex/master-red-hat-enterprise-linux-essential-skills-for-system-administrators-46b3</guid>
      <description>&lt;p&gt;Ready to level up your Linux game? Red Hat Enterprise Linux (RHEL) is the gold standard for enterprise environments, and mastering it is a career-defining move. Whether you are just starting out or looking to sharpen your sysadmin skills, our curated RHEL learning path gives you the hands-on practice you need. Forget boring videos—let's dive into four practical labs that will make you feel like a pro in no time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configure Hostname Resolution
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Frhel-configure-hostname-resolution-588229" 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%2Fog-image.labex.io%2Flabs%2Frhel-configure-hostname-resolution-588229" alt="Configure Hostname Resolution" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 10 minutes&lt;/p&gt;

&lt;p&gt;In this challenge, you will learn how to configure hostname resolution on a Linux system, including static and dynamic hostname resolution.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/rhel-configure-hostname-resolution-588229" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/rhel-configure-hostname-resolution-588229" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configure Key-Based Authentication for SSH
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Frhel-configure-key-based-authentication-for-ssh-588231" 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%2Fog-image.labex.io%2Flabs%2Frhel-configure-key-based-authentication-for-ssh-588231" alt="Configure Key-Based Authentication for SSH" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 10 minutes&lt;/p&gt;

&lt;p&gt;In this challenge, you will learn how to configure key-based authentication for SSH, a more secure alternative to password-based authentication.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/rhel-configure-key-based-authentication-for-ssh-588231" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/rhel-configure-key-based-authentication-for-ssh-588231" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Create and Configure File Systems
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Frhel-create-and-configure-file-systems-588237" 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%2Fog-image.labex.io%2Flabs%2Frhel-create-and-configure-file-systems-588237" alt="Create and Configure File Systems" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 5 minutes&lt;/p&gt;

&lt;p&gt;In this challenge, you will learn how to create, mount, unmount, and use different file systems, including vfat, ext4, and xfs, on a Linux system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/rhel-create-and-configure-file-systems-588237" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/rhel-create-and-configure-file-systems-588237" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configure Time Service Clients
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Frhel-configure-time-service-clients-588235" 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%2Fog-image.labex.io%2Flabs%2Frhel-configure-time-service-clients-588235" alt="Configure Time Service Clients" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 5 minutes&lt;/p&gt;

&lt;p&gt;In this challenge, you will learn how to configure time service clients on a Linux system, ensuring accurate time for system operations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/rhel-configure-time-service-clients-588235" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/rhel-configure-time-service-clients-588235" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These four labs are just the beginning of your RHEL journey. By mastering these foundational tasks, you are building the muscle memory required for complex enterprise deployments. Don't just read about Linux—get into the terminal and start building your expertise today. Your future self will thank you for the hands-on experience!&lt;/p&gt;

</description>
      <category>rhel</category>
      <category>linux</category>
      <category>sysadmin</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Mastering Red Hat Enterprise Linux: SSH Key Auth, Hostname Resolution, and Podman Automation</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Tue, 05 May 2026 17:29:39 +0000</pubDate>
      <link>https://forem.com/labex/mastering-red-hat-enterprise-linux-ssh-key-auth-hostname-resolution-and-podman-automation-nmj</link>
      <guid>https://forem.com/labex/mastering-red-hat-enterprise-linux-ssh-key-auth-hostname-resolution-and-podman-automation-nmj</guid>
      <description>&lt;p&gt;Ready to level up your Linux game? Red Hat Enterprise Linux (RHEL) is the gold standard for enterprise environments, and mastering it is a career-defining move. Whether you are a budding sysadmin or a seasoned DevOps pro, our hands-on RHEL learning path gives you the practical skills you need to manage production systems with confidence. Let's dive into three quick, high-impact labs that will sharpen your technical edge today.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configure Key-Based Authentication for SSH
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Frhel-configure-key-based-authentication-for-ssh-588231" 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%2Fog-image.labex.io%2Flabs%2Frhel-configure-key-based-authentication-for-ssh-588231" alt="Configure Key-Based Authentication for SSH" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 10 minutes&lt;/p&gt;

&lt;p&gt;In this challenge, you will learn how to configure key-based authentication for SSH, a more secure alternative to password-based authentication.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/rhel-configure-key-based-authentication-for-ssh-588231" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/rhel-configure-key-based-authentication-for-ssh-588231" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configure Hostname Resolution
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Frhel-configure-hostname-resolution-588229" 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%2Fog-image.labex.io%2Flabs%2Frhel-configure-hostname-resolution-588229" alt="Configure Hostname Resolution" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 10 minutes&lt;/p&gt;

&lt;p&gt;In this challenge, you will learn how to configure hostname resolution on a Linux system, including static and dynamic hostname resolution.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/rhel-configure-hostname-resolution-588229" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/rhel-configure-hostname-resolution-588229" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configure a Podman Container to Start Automatically as a systemd User Service
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Frhel-configure-a-podman-container-to-start-automatically-as-a-systemd-user-service-588225" 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%2Fog-image.labex.io%2Flabs%2Frhel-configure-a-podman-container-to-start-automatically-as-a-systemd-user-service-588225" alt="Configure a Podman Container to Start Automatically as a systemd User Service" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 10 minutes&lt;/p&gt;

&lt;p&gt;In this challenge, you will learn how to configure a Podman container to start automatically at boot using a systemd user service. This is a key skill for managing containerized applications on modern RHEL systems.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/rhel-configure-a-podman-container-to-start-automatically-as-a-systemd-user-service-588225" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/rhel-configure-a-podman-container-to-start-automatically-as-a-systemd-user-service-588225" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These labs are designed to get you out of the theory and into the terminal. By practicing these tasks in a real RHEL environment, you are building the muscle memory required for real-world IT operations. Don't just read about Linux—experience it. Jump into these exercises now and start building your expertise one command at a time!&lt;/p&gt;

</description>
      <category>rhel</category>
      <category>linux</category>
      <category>podman</category>
      <category>automation</category>
    </item>
    <item>
      <title>Master Git: Essential Labs for Cloning, Diffing, Branching, and Config</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Mon, 04 May 2026 17:29:55 +0000</pubDate>
      <link>https://forem.com/labex/master-git-essential-labs-for-cloning-diffing-branching-and-config-4ob8</link>
      <guid>https://forem.com/labex/master-git-essential-labs-for-cloning-diffing-branching-and-config-4ob8</guid>
      <description>&lt;p&gt;Git is the backbone of modern software development, but moving beyond basic commands can be intimidating. Whether you are a beginner or looking to sharpen your version control habits, our structured Git learning path offers a hands-on approach to mastering the industry standard. By working directly in a live environment, you will move from theory to practical application, ensuring you are ready for real-world collaborative projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Clone a Repository
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fgit-clone-a-repository-387454" 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%2Fog-image.labex.io%2Flabs%2Fgit-clone-a-repository-387454" alt="Clone a Repository" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 25 minutes&lt;/p&gt;

&lt;p&gt;Learn how to clone Git repositories using various techniques, including basic cloning, cloning to specific directories, creating shallow clones, and cloning specific branches. This lab will enhance your Git skills and improve your workflow efficiency.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/git-clone-a-repository-387454" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/git-clone-a-repository-387454" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Git Diff Deep Dive
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fgit-git-diff-deep-dive-387489" 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%2Fog-image.labex.io%2Flabs%2Fgit-git-diff-deep-dive-387489" alt="Git Diff Deep Dive" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 30 minutes&lt;/p&gt;

&lt;p&gt;Learn the powerful git diff command to compare changes between different stages of your Git repository. Learn to analyze differences in the working directory, staging area, commits, and branches.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/git-git-diff-deep-dive-387489" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/git-git-diff-deep-dive-387489" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Git Branch Basic Operations
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fgit-git-branch-basic-operations-385163" 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%2Fog-image.labex.io%2Flabs%2Fgit-git-branch-basic-operations-385163" alt="Git Branch Basic Operations" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 25 minutes&lt;/p&gt;

&lt;p&gt;Learn essential Git branching operations including creating, switching, merging, and deleting branches. Practice using git branch, checkout, merge, and log commands to manage your development workflow effectively.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/git-git-branch-basic-operations-385163" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/git-git-branch-basic-operations-385163" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Git Config Management
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fgit-git-config-management-385164" 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%2Fog-image.labex.io%2Flabs%2Fgit-git-config-management-385164" alt="Git Config Management" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 40 minutes&lt;/p&gt;

&lt;p&gt;Learn Git configuration management using the git config command. Learn to set up your Git identity, configure colors, set default editor, manage line endings, create aliases, and understand repository-specific configurations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/git-git-config-management-385164" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/git-git-config-management-385164" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mastering Git is a journey of continuous practice, and these four labs provide the perfect foundation to build your expertise. By moving from configuration to complex branching and diff analysis, you are equipping yourself with the tools used by professional developers every day. Dive into these interactive exercises today and take full control of your version history.&lt;/p&gt;

</description>
      <category>git</category>
      <category>versioncontrol</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Master SQLite and Redis: 3 Hands-On Database Labs for Linux Developers</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Sun, 03 May 2026 17:15:00 +0000</pubDate>
      <link>https://forem.com/labex/master-sqlite-and-redis-3-hands-on-database-labs-for-linux-developers-5cpe</link>
      <guid>https://forem.com/labex/master-sqlite-and-redis-3-hands-on-database-labs-for-linux-developers-5cpe</guid>
      <description>&lt;p&gt;Ready to stop just reading about databases and start building with them? Whether you are a total beginner or looking to sharpen your backend skills, our comprehensive Database Learning Path is your perfect starting point. We have curated three hands-on labs that take you from zero to hero, helping you master everything from lightweight file-based storage to high-performance caching.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Up SQLite in Linux
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fsqlite-setting-up-sqlite-in-linux-552335" 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%2Fog-image.labex.io%2Flabs%2Fsqlite-setting-up-sqlite-in-linux-552335" alt="Setting Up SQLite in Linux" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 20 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will learn how to set up SQLite on a Linux system using the LabEx VM environment. This hands-on tutorial covers installing SQLite, verifying the installation, accessing the SQLite CLI, and running basic commands like .help and .exit. Perfect for beginners, it provides practical experience with a lightweight, file-based RDBMS in the ~/project directory.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/sqlite-setting-up-sqlite-in-linux-552335" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/sqlite-setting-up-sqlite-in-linux-552335" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Redis Transactions
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fredis-redis-transactions-552106" 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%2Fog-image.labex.io%2Flabs%2Fredis-redis-transactions-552106" alt="Redis Transactions" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 20 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will explore Redis transactions, executing commands as a single, atomic operation for data consistency. Learn to start transactions with MULTI, queue commands, and execute or discard them. Practice setting keys, getting values, and incrementing counters within transactions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/redis-redis-transactions-552106" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/redis-redis-transactions-552106" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Expire Keys In Redis Cache
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fredis-expire-keys-in-redis-cache-552156" 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%2Fog-image.labex.io%2Flabs%2Fredis-expire-keys-in-redis-cache-552156" alt="Expire Keys In Redis Cache" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 5 minutes&lt;/p&gt;

&lt;p&gt;In this challenge, you'll simulate a social media app using Redis to cache trending topics. The goal is to set a key representing a trending topic and configure it to expire after a specific duration. You'll use redis-cli, set the key &lt;code&gt;trending:topic1&lt;/code&gt; to &lt;code&gt;Redis Basics&lt;/code&gt;, and set its expiration time to 3600 seconds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/redis-expire-keys-in-redis-cache-552156" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/redis-expire-keys-in-redis-cache-552156" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Database management is a superpower in the tech world, and these labs are designed to give you that edge. Don't just watch from the sidelines—jump into our interactive playground and start coding today. Your future self will thank you for the hands-on experience you gain right now!&lt;/p&gt;

</description>
      <category>database</category>
      <category>sqlite</category>
      <category>redis</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Linux Security Essentials: Mastering Cron, Sudoers, and UFW for Cybersecurity</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Sat, 02 May 2026 17:14:38 +0000</pubDate>
      <link>https://forem.com/labex/linux-security-essentials-mastering-cron-sudoers-and-ufw-for-cybersecurity-3jno</link>
      <guid>https://forem.com/labex/linux-security-essentials-mastering-cron-sudoers-and-ufw-for-cybersecurity-3jno</guid>
      <description>&lt;p&gt;Cybersecurity is not just about complex algorithms; it starts with hardening the foundation of your operating system. Whether you are aiming for a career in penetration testing or system administration, understanding how to manage tasks, privileges, and network traffic in Linux is non-negotiable. This curated selection of LabEx hands-on exercises is designed to take you from theory to practice, ensuring you build a robust security mindset from day one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding cron Syntax
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Funderstanding-cron-syntax-636497" 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%2Fog-image.labex.io%2Flabs%2Funderstanding-cron-syntax-636497" alt="Understanding cron Syntax" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 15 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will learn how to schedule tasks in Linux using cron. You will explore the system crontab file and practice writing cron syntax for specific schedules.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/understanding-cron-syntax-636497" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/understanding-cron-syntax-636497" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding Sudoers Configuration
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Funderstanding-sudoers-configuration-636509" 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%2Fog-image.labex.io%2Flabs%2Funderstanding-sudoers-configuration-636509" alt="Understanding Sudoers Configuration" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 15 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will learn how to safely access and view the sudoers configuration file using the visudo command, understanding how root privileges are defined in Linux.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/understanding-sudoers-configuration-636509" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/understanding-sudoers-configuration-636509" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuring the UFW Firewall
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fconfiguring-the-ufw-firewall-636507" 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%2Fog-image.labex.io%2Flabs%2Fconfiguring-the-ufw-firewall-636507" alt="Configuring the UFW Firewall" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 20 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will learn how to secure your Linux network by configuring the Uncomplicated Firewall (UFW). You will check the status, allow specific ports like 8080, and enable the firewall safely.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/configuring-the-ufw-firewall-636507" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/configuring-the-ufw-firewall-636507" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Security is a continuous process of learning and hardening. By mastering these three core Linux administration tasks, you are not just completing labs; you are building the defensive muscle memory required for professional cybersecurity roles. Dive into these interactive environments today and start securing your infrastructure with confidence.&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>linux</category>
      <category>security</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>4 Linux Hardening Labs for Cybersecurity Engineers: Tmpfs, Ports, Boot, and UFW</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Fri, 01 May 2026 17:19:25 +0000</pubDate>
      <link>https://forem.com/labex/4-linux-hardening-labs-for-cybersecurity-engineers-tmpfs-ports-boot-and-ufw-d80</link>
      <guid>https://forem.com/labex/4-linux-hardening-labs-for-cybersecurity-engineers-tmpfs-ports-boot-and-ufw-d80</guid>
      <description>&lt;p&gt;Transitioning into a cybersecurity career requires more than just theoretical knowledge; it demands a deep, practical understanding of how systems operate under the hood. LabEx’s Cybersecurity Engineer Skill Tree is designed to bridge this gap, taking you from foundational concepts to advanced threat mitigation. In this guide, we explore four critical hands-on labs that will sharpen your ability to audit, secure, and monitor Linux environments effectively.&lt;/p&gt;

&lt;h2&gt;
  
  
  Secure Shared Memory on Tmpfs
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fsecure-shared-memory-on-tmpfs-636508" 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%2Fog-image.labex.io%2Flabs%2Fsecure-shared-memory-on-tmpfs-636508" alt="Secure Shared Memory on Tmpfs" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 15 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will learn how to secure shared memory on Linux by modifying mount options for /dev/shm. You will practice identifying current settings and applying the noexec flag to prevent unauthorized script execution in temporary storage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/secure-shared-memory-on-tmpfs-636508" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/secure-shared-memory-on-tmpfs-636508" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Checking Listening Ports for Security Audit
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fchecking-listening-ports-for-security-audit-636506" 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%2Fog-image.labex.io%2Flabs%2Fchecking-listening-ports-for-security-audit-636506" alt="Checking Listening Ports for Security Audit" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 15 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will learn how to audit listening ports on a Linux system to minimize the attack surface. You will use the ss command to identify open ports and investigate suspicious processes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/checking-listening-ports-for-security-audit-636506" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/checking-listening-ports-for-security-audit-636506" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Boot Process Overview
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fthe-boot-process-overview-636504" 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%2Fog-image.labex.io%2Flabs%2Fthe-boot-process-overview-636504" alt="The Boot Process Overview" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 15 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will explore the Linux boot process. You will learn how to inspect kernel boot messages using dmesg, identify boot partition mount points, and examine the GRUB bootloader configuration file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/the-boot-process-overview-636504" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/the-boot-process-overview-636504" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuring the UFW Firewall
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fconfiguring-the-ufw-firewall-636507" 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%2Fog-image.labex.io%2Flabs%2Fconfiguring-the-ufw-firewall-636507" alt="Configuring the UFW Firewall" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 20 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will learn how to secure your Linux network by configuring the Uncomplicated Firewall (UFW). You will check the status, allow specific ports like 8080, and enable the firewall safely.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/configuring-the-ufw-firewall-636507" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/configuring-the-ufw-firewall-636507" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These four labs represent the bedrock of Linux system security. By moving from theory to hands-on execution, you are not just learning commands; you are building the intuition required to defend complex infrastructures. Whether you are preparing for a certification or looking to level up your professional toolkit, these exercises provide the real-world experience necessary to excel as a Cybersecurity Engineer. Dive into the LabEx environment today and start hardening your systems with confidence.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>cybersecurity</category>
      <category>hardening</category>
      <category>networking</category>
    </item>
    <item>
      <title>4 JavaScript Projects: Build a Prize Draw, Matching Game, Permission System, and Accordion</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Thu, 30 Apr 2026 17:28:36 +0000</pubDate>
      <link>https://forem.com/labex/4-javascript-projects-build-a-prize-draw-matching-game-permission-system-and-accordion-22l8</link>
      <guid>https://forem.com/labex/4-javascript-projects-build-a-prize-draw-matching-game-permission-system-and-accordion-22l8</guid>
      <description>&lt;p&gt;JavaScript is the heartbeat of the modern web, but theory alone won't make you a developer. To truly master the language, you need to move beyond syntax and start building. This curated learning path on LabEx is designed to bridge the gap between beginner concepts and functional web applications through hands-on, interactive coding exercises.&lt;/p&gt;

&lt;h2&gt;
  
  
  Simple Prize Draw Application
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fjavascript-simple-prize-draw-application-445672" 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%2Fog-image.labex.io%2Flabs%2Fjavascript-simple-prize-draw-application-445672" alt="Simple Prize Draw Application" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 15 minutes&lt;/p&gt;

&lt;p&gt;In this project, you will learn how to create a simple prize draw application using JavaScript and jQuery. The application will simulate a prize draw by rotating a list of prizes and displaying the winning prize when the rotation stops.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/javascript-simple-prize-draw-application-445672" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/javascript-simple-prize-draw-application-445672" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Fruit Matching Game with HTML, CSS, JavaScript
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fjavascript-fruit-matching-game-with-html-css-javascript-445656" 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%2Fog-image.labex.io%2Flabs%2Fjavascript-fruit-matching-game-with-html-css-javascript-445656" alt="Fruit Matching Game with HTML, CSS, JavaScript" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 20 minutes&lt;/p&gt;

&lt;p&gt;In this project, you will learn how to create a simple 'Fruit for Fun' game using HTML, CSS, and JavaScript. The game involves matching pairs of fruit images by clicking on the squares on the game board.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/javascript-fruit-matching-game-with-html-css-javascript-445656" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/javascript-fruit-matching-game-with-html-css-javascript-445656" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  User Permission Management System with JavaScript
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fjavascript-user-permission-management-system-with-javascript-445667" 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%2Fog-image.labex.io%2Flabs%2Fjavascript-user-permission-management-system-with-javascript-445667" alt="User Permission Management System with JavaScript" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 5 minutes&lt;/p&gt;

&lt;p&gt;In this challenge, we will implement permission management using JavaScript or jQuery. The goal is to asynchronously read and render user data, move users between lists, and update the user permissions table accordingly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/javascript-user-permission-management-system-with-javascript-445667" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/javascript-user-permission-management-system-with-javascript-445667" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Building Responsive Accordion Interfaces
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fjavascript-building-responsive-accordion-interfaces-445654" 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%2Fog-image.labex.io%2Flabs%2Fjavascript-building-responsive-accordion-interfaces-445654" alt="Building Responsive Accordion Interfaces" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 10 minutes&lt;/p&gt;

&lt;p&gt;In this project, you will learn how to create a simple folding accordion using HTML, CSS, and JavaScript. The folding accordion is a common UI element that allows users to expand and collapse content sections, making it a useful feature for displaying information in a compact and organized manner.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/javascript-building-responsive-accordion-interfaces-445654" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/javascript-building-responsive-accordion-interfaces-445654" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These projects are more than just exercises; they are the foundation of your professional portfolio. By tackling these challenges, you move from passive reading to active problem-solving. Dive into the LabEx JavaScript path today and start turning your code into interactive experiences.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>coding</category>
    </item>
    <item>
      <title>5 Advanced SQLite Techniques for High-Performance Embedded Database Optimization</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Wed, 29 Apr 2026 17:30:05 +0000</pubDate>
      <link>https://forem.com/labex/5-advanced-sqlite-techniques-for-high-performance-embedded-database-optimization-276p</link>
      <guid>https://forem.com/labex/5-advanced-sqlite-techniques-for-high-performance-embedded-database-optimization-276p</guid>
      <description>&lt;p&gt;SQLite is the backbone of countless applications, from mobile apps to IoT devices. But are you using it to its full potential? This learning path takes you beyond basic CRUD operations, offering a structured, hands-on roadmap to mastering the nuances of this powerful, serverless database engine. Whether you are a beginner or an embedded developer, these five practical labs will sharpen your SQL expertise.&lt;/p&gt;

&lt;h2&gt;
  
  
  SQLite Database Maintenance
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fsqlite-sqlite-database-maintenance-552549" 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%2Fog-image.labex.io%2Flabs%2Fsqlite-sqlite-database-maintenance-552549" alt="SQLite Database Maintenance" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 20 minutes&lt;/p&gt;

&lt;p&gt;In this lab, we will explore SQLite database maintenance techniques to optimize performance and reclaim wasted space. The lab focuses on using the &lt;code&gt;VACUUM&lt;/code&gt; command, rebuilding indexes, analyzing table statistics, and verifying the impact of these optimizations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/sqlite-sqlite-database-maintenance-552549" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/sqlite-sqlite-database-maintenance-552549" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  SQLite Subquery Techniques
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fsqlite-sqlite-subquery-techniques-552555" 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%2Fog-image.labex.io%2Flabs%2Fsqlite-sqlite-subquery-techniques-552555" alt="SQLite Subquery Techniques" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 20 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will explore SQLite subquery techniques to enhance your data retrieval and filtering capabilities. The lab focuses on utilizing subqueries within the &lt;code&gt;WHERE&lt;/code&gt; clause, embedding them in the &lt;code&gt;SELECT&lt;/code&gt; statement, building correlated subqueries, and assessing subquery efficiency.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/sqlite-sqlite-subquery-techniques-552555" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/sqlite-sqlite-subquery-techniques-552555" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  SQLite Error Handling
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fsqlite-sqlite-error-handling-552550" 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%2Fog-image.labex.io%2Flabs%2Fsqlite-sqlite-error-handling-552550" alt="SQLite Error Handling" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 20 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will learn how to effectively handle errors in SQLite databases. The primary focus is on managing constraint violations during &lt;code&gt;INSERT&lt;/code&gt; operations using the &lt;code&gt;ON CONFLICT&lt;/code&gt; clause. You'll explore different actions and test error recovery, logging error conditions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/sqlite-sqlite-error-handling-552550" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/sqlite-sqlite-error-handling-552550" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  SQLite Table Joining
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fsqlite-sqlite-table-joining-552556" 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%2Fog-image.labex.io%2Flabs%2Fsqlite-sqlite-table-joining-552556" alt="SQLite Table Joining" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 20 minutes&lt;/p&gt;

&lt;p&gt;In this lab, we will explore SQLite table joining techniques, focusing on combining data from multiple related tables. We'll cover INNER JOIN, LEFT JOIN, joining multiple tables, and filtering joined results. Learn to retrieve and combine data efficiently using SQLite.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/sqlite-sqlite-table-joining-552556" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/sqlite-sqlite-table-joining-552556" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  SQLite PRAGMA Tuning
&lt;/h2&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%2Fog-image.labex.io%2Flabs%2Fsqlite-sqlite-pragma-tuning-552554" 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%2Fog-image.labex.io%2Flabs%2Fsqlite-sqlite-pragma-tuning-552554" alt="SQLite PRAGMA Tuning" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Beginner | &lt;strong&gt;Time:&lt;/strong&gt; 20 minutes&lt;/p&gt;

&lt;p&gt;In this lab, we will explore SQLite PRAGMA tuning to optimize database performance and reliability. The lab focuses on configuring key aspects of SQLite's behavior through PRAGMA statements. We will configure journal mode, enable foreign key checks, perform integrity checks, and adjust cache size.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/sqlite-sqlite-pragma-tuning-552554" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/sqlite-sqlite-pragma-tuning-552554" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mastering SQLite is about more than just knowing the syntax; it is about understanding how to optimize, protect, and structure your data effectively. These hands-on labs provide the perfect environment to experiment without risk. Dive into these exercises today and transform your approach to local database management.&lt;/p&gt;

</description>
      <category>sqlite</category>
      <category>database</category>
      <category>sql</category>
      <category>optimization</category>
    </item>
  </channel>
</rss>
