<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Labby</title>
    <description>The latest articles on DEV Community by Labby (@labby).</description>
    <link>https://dev.to/labby</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%2F1606694%2Fd9443cf7-7b8f-49bc-ab8c-3d83a7fe7a4e.jpg</url>
      <title>DEV Community: Labby</title>
      <link>https://dev.to/labby</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/labby"/>
    <language>en</language>
    <item>
      <title>5 DevOps Engineer Labs: From Bash Scripting to Docker Image Management</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Sun, 05 Apr 2026 17:07:47 +0000</pubDate>
      <link>https://dev.to/labex/5-devops-engineer-labs-from-bash-scripting-to-docker-image-management-16ba</link>
      <guid>https://dev.to/labex/5-devops-engineer-labs-from-bash-scripting-to-docker-image-management-16ba</guid>
      <description>&lt;p&gt;Transitioning into a DevOps role requires more than just theory; it demands hands-on mastery of the tools that power modern infrastructure. Our curated DevOps Engineer Skill Tree is designed to take you from zero to junior-level proficiency. In this guide, we highlight five foundational labs that will sharpen your scripting skills and solidify your understanding of containerization.&lt;/p&gt;

&lt;h2&gt;
  
  
  File System Explorer
&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%2Fshell-file-system-explorer-388898" 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%2Fshell-file-system-explorer-388898" alt="File System Explorer" 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'll create a simple file system explorer script that demonstrates your understanding of basic file and directory operations in shell scripting. You'll implement functions to check the existence, type, and permissions of files and directories, enhancing your skills in file system manipulation and conditional testing in bash.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/shell-file-system-explorer-388898" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/shell-file-system-explorer-388898" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Working with Docker Images
&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-working-with-docker-images-388939" 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-working-with-docker-images-388939" alt="Working with Docker Images" 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; 35 minutes&lt;/p&gt;

&lt;p&gt;Learn how to pull, run, manage, and manipulate Docker images. This lab covers pulling images from Docker Hub, running different versions, listing and removing images, understanding image layers, searching for images, saving and loading images, and basic image tagging.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/docker-working-with-docker-images-388939" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/docker-working-with-docker-images-388939" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Bash Trap Command
&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%2Flinux-bash-trap-command-388820" 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%2Flinux-bash-trap-command-388820" alt="Bash Trap Command" 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; 20 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you'll learn to use the Bash trap command to handle signals and interruptions in your scripts. You'll create a script that catches specific signals, implement custom actions for these signals, and use functions with trap for more organized code. By the end, you'll be able to write scripts that gracefully handle various scenarios and prevent unpredictable behavior.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/linux-bash-trap-command-388820" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/linux-bash-trap-command-388820" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Four Function Calculator
&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%2Fshell-four-function-calculator-388893" 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%2Fshell-four-function-calculator-388893" alt="Four Function Calculator" 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'll create a basic four-function calculator using shell scripting. You'll implement functions for addition, subtraction, multiplication, and division, handling various scenarios including division by zero. This exercise will help you practice function definition, arithmetic operations, and error handling in bash scripting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/shell-four-function-calculator-388893" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/shell-four-function-calculator-388893" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Weather Advisory System
&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%2Fshell-weather-advisory-system-388885" 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%2Fshell-weather-advisory-system-388885" alt="Weather Advisory System" 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'll develop a simple weather advisory system for a local meteorology office. Your task is to create a shell script that provides different advice based on the current temperature. This exercise will help you practice using conditional statements in bash scripting to handle various scenarios.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/shell-weather-advisory-system-388885" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/shell-weather-advisory-system-388885" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These five labs are more than just exercises; they are the building blocks of a successful DevOps career. By completing these hands-on tasks, you will gain the practical experience necessary to tackle complex infrastructure challenges. Dive into the LabEx DevOps Skill Tree today and start building your future, one script at a time.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>bash</category>
      <category>docker</category>
      <category>linux</category>
    </item>
    <item>
      <title>5 React Projects: Build a Christmas Wish List, Notes App, and Custom Navigation Hooks</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Sat, 04 Apr 2026 17:07:38 +0000</pubDate>
      <link>https://dev.to/labex/5-react-projects-build-a-christmas-wish-list-notes-app-and-custom-navigation-hooks-58bb</link>
      <guid>https://dev.to/labex/5-react-projects-build-a-christmas-wish-list-notes-app-and-custom-navigation-hooks-58bb</guid>
      <description>&lt;p&gt;React has revolutionized how we build modern web interfaces, but theory alone isn't enough to become a proficient developer. To truly master React, you need to move beyond tutorials and start building. This curated learning path on LabEx offers a structured, interactive environment where you can sharpen your skills through practical, non-video coding exercises. Whether you are a complete beginner or looking to solidify your foundation, these five labs will guide you from your first component to building dynamic, responsive applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building Christmas Wish List App with React
&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%2Freact-building-christmas-wish-list-app-with-react-445792" 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%2Freact-building-christmas-wish-list-app-with-react-445792" alt="Building Christmas Wish List App with React" 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; 35 minutes&lt;/p&gt;

&lt;p&gt;This project guides you through building a festive Christmas Wish List Builder web application using React. The app features a beautiful full-screen Christmas-themed background and a charming snowfall animation, enhancing the holiday spirit. Users can add wishes to a semi-transparent wish wall, and each wish is presented as a postcard. We'll use React for the frontend and CSS for styling and animations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/react-building-christmas-wish-list-app-with-react-445792" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/react-building-christmas-wish-list-app-with-react-445792" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Implementing React Navigation Features
&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-implementing-react-navigation-features-300142" 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-implementing-react-navigation-features-300142" alt="Implementing React Navigation Features" 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; 15 minutes&lt;/p&gt;

&lt;p&gt;In this project, you will learn how to implement navigation features in a React application. You will create a simple application with a navigation bar and pages that can be navigated to using links.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/javascript-implementing-react-navigation-features-300142" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/javascript-implementing-react-navigation-features-300142" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Create a Notes App Using React
&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-create-a-notes-app-using-react-445794" 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-create-a-notes-app-using-react-445794" alt="Create a Notes App Using React" 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; 40 minutes&lt;/p&gt;

&lt;p&gt;In this project, we will create a simple Notes App using React. The app will allow users to add, edit, and delete notes. We will break down the development into several steps, ensuring that each step meets specific requirements and adds essential functionality.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/javascript-create-a-notes-app-using-react-445794" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/javascript-create-a-notes-app-using-react-445794" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Your First React Lab
&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%2Freact-your-first-react-lab-92968" 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%2Freact-your-first-react-lab-92968" alt="Your First React Lab" 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; 7 minutes&lt;/p&gt;

&lt;p&gt;Hi there, welcome to LabEx! In this first lab, you'll learn the classic 'Hello, World!' program in React.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/react-your-first-react-lab-92968" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/react-your-first-react-lab-92968" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Responsive Navigation with Custom React Hook
&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-responsive-navigation-with-custom-react-hook-300136" 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-responsive-navigation-with-custom-react-hook-300136" alt="Responsive Navigation with Custom React Hook" 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; 10 minutes&lt;/p&gt;

&lt;p&gt;In this project, you will learn how to create a custom React Hook called useWindowSize to get the current window size and use it to conditionally render the navigation bar in a web application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/javascript-responsive-navigation-with-custom-react-hook-300136" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/javascript-responsive-navigation-with-custom-react-hook-300136" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mastering React is a journey of continuous practice and problem-solving. By completing these hands-on labs, you are not just learning syntax; you are building a portfolio of functional applications that demonstrate your ability to handle real-world development challenges. Dive into the LabEx playground today and start turning your code into reality.&lt;/p&gt;

</description>
      <category>react</category>
      <category>frontend</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>3 Shell Scripting Challenges: Bubble Sort, Command History Analysis, and String Conversion</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Thu, 02 Apr 2026 17:15:20 +0000</pubDate>
      <link>https://dev.to/labex/3-shell-scripting-challenges-bubble-sort-command-history-analysis-and-string-conversion-19l1</link>
      <guid>https://dev.to/labex/3-shell-scripting-challenges-bubble-sort-command-history-analysis-and-string-conversion-19l1</guid>
      <description>&lt;p&gt;Mastering the command line is the single most effective way to transform from a casual Linux user into a proficient system administrator. Shell scripting isn't just about executing commands; it is about building logic to automate the mundane. In this guide, we explore three hands-on LabEx challenges designed to sharpen your scripting intuition, from algorithmic sorting to system forensics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bubble Sort Command-Line Sorting
&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%2Fshell-bubble-sort-command-line-sorting-18285" 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%2Fshell-bubble-sort-command-line-sorting-18285" alt="Bubble Sort Command-Line Sorting" 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;Sorting is an essential operation in computer science that arranges data in a specific order. In this challenge, we will write a script that sorts a given set of numbers in ascending or descending order using the bubble sort algorithm. The script will take input from the user through command-line arguments and provide a menu for the user to choose the sorting order.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/shell-bubble-sort-command-line-sorting-18285" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/shell-bubble-sort-command-line-sorting-18285" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Analyze Historical Commands
&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%2Flinux-analyze-historical-commands-17988" 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%2Flinux-analyze-historical-commands-17988" alt="Analyze Historical Commands" 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 will analyze the history of commands run on a Linux system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/linux-analyze-historical-commands-17988" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/linux-analyze-historical-commands-17988" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Convert Strings with Shell Script
&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%2Fshell-convert-strings-with-shell-script-18283" 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%2Fshell-convert-strings-with-shell-script-18283" alt="Convert Strings with Shell Script" 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, we will write a shell script to convert a given string to either upper case or lower case based on the user's input. We will use the tr command to perform the string conversion. The script will take a filename as input and ask the user to select the conversion option.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/shell-convert-strings-with-shell-script-18283" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/shell-convert-strings-with-shell-script-18283" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These three labs represent the perfect intersection of theory and practice. By moving from algorithmic logic to system auditing and text processing, you are building a versatile toolkit that will serve you in any DevOps or sysadmin role. Don't just read about shell scripting—get into the terminal and start building. Your journey toward automation mastery begins with these practical, hands-on exercises.&lt;/p&gt;

</description>
      <category>shell</category>
      <category>linux</category>
      <category>automation</category>
      <category>scripting</category>
    </item>
    <item>
      <title>Scikit-Learn Projects: SVM Iris Classification, KNN Flower Prediction, and Handwritten Digit Recognition</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Wed, 01 Apr 2026 17:16:48 +0000</pubDate>
      <link>https://dev.to/labex/scikit-learn-projects-svm-iris-classification-knn-flower-prediction-and-handwritten-digit-31og</link>
      <guid>https://dev.to/labex/scikit-learn-projects-svm-iris-classification-knn-flower-prediction-and-handwritten-digit-31og</guid>
      <description>&lt;p&gt;Machine learning is best learned by doing, not just reading. Scikit-learn stands as the industry-standard library for Python, offering a robust ecosystem for predictive modeling. This curated learning path is designed to move you from theoretical concepts to practical implementation, providing a structured environment where you can experiment with real-world datasets and core algorithms without the overhead of complex setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  Classifying Iris Using SVM
&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-classifying-iris-using-svm-300195" 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-classifying-iris-using-svm-300195" alt="Classifying Iris Using SVM" 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; 20 minutes&lt;/p&gt;

&lt;p&gt;In this project, you will learn how to classify the iris dataset using a Support Vector Classifier (SVC) model. The iris dataset is a classic machine learning dataset that contains information about different species of irises, including their sepal length, sepal width, petal length, and petal width.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/python-classifying-iris-using-svm-300195" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/python-classifying-iris-using-svm-300195" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Simple Handwritten Character Recognition Classifier
&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%2Fsklearn-simple-handwritten-character-recognition-classifier-300256" 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%2Fsklearn-simple-handwritten-character-recognition-classifier-300256" alt="Simple Handwritten Character Recognition Classifier" 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, we will be implementing a simple handwritten character recognition classifier. Using the DIGITS dataset provided by the scikit-learn library, we will build a function that can classify a single sample of a handwritten character image. The objective is to create a function that takes in a list representing the pixel values of the image and returns the predicted label for the character. The function should achieve a cross-validated classification accuracy of at least 80% on the DIGITS dataset.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/sklearn-simple-handwritten-character-recognition-classifier-300256" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/sklearn-simple-handwritten-character-recognition-classifier-300256" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Predicting Flower Types with Nearest Neighbors
&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%2Fsklearn-predicting-flower-types-with-nearest-neighbors-256147" 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%2Fsklearn-predicting-flower-types-with-nearest-neighbors-256147" alt="Predicting Flower Types with Nearest Neighbors" 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; 15 minutes&lt;/p&gt;

&lt;p&gt;In this challenge, you'll be exploring the world of machine learning through the eyes of a botanist. Using the famous Iris dataset, you'll be tasked to predict the type of Iris flower based on its petal and sepal measurements. This task will introduce you to one of the fundamental algorithms in machine learning - the k-nearest neighbors (k-NN) algorithm.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/sklearn-predicting-flower-types-with-nearest-neighbors-256147" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/sklearn-predicting-flower-types-with-nearest-neighbors-256147" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These three experiments are more than just tutorials; they are the building blocks of a professional data science workflow. By mastering these core algorithms—SVM, k-NN, and basic image classification—you are laying a solid foundation for more advanced deep learning and predictive analytics. Dive into the LabEx playground today and start turning your code into actionable insights.&lt;/p&gt;

</description>
      <category>scikitlearn</category>
      <category>machinelearning</category>
      <category>python</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Kali Linux Hands-on Guide: User Management, Hydra, John, iptables, and Nmap Labs</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Tue, 31 Mar 2026 17:19:07 +0000</pubDate>
      <link>https://dev.to/labex/kali-linux-hands-on-guide-user-management-hydra-john-iptables-and-nmap-labs-2o1a</link>
      <guid>https://dev.to/labex/kali-linux-hands-on-guide-user-management-hydra-john-iptables-and-nmap-labs-2o1a</guid>
      <description>&lt;p&gt;Stepping into the world of cybersecurity can feel like standing before a locked vault. Kali Linux is the master key, but knowing how to hold it is only half the battle. Whether you are an aspiring penetration tester or a curious IT professional, our curated Kali Linux learning path transforms complex security concepts into a hands-on journey. Forget passive video tutorials; it is time to get your hands dirty in a real, interactive environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create User Account in Kali
&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%2Fkali-create-user-account-in-kali-552291" 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%2Fkali-create-user-account-in-kali-552291" alt="Create User Account in Kali" 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'll be tasked with creating a new user account named 'bob' on a Kali Linux system. This is a fundamental skill for cybersecurity professionals, allowing them to manage user access and permissions. The challenge involves using the &lt;code&gt;adduser&lt;/code&gt; command to create the 'bob' user, setting a password, and skipping the optional information prompts. Successful completion will be verified by confirming the user's existence using the &lt;code&gt;id bob&lt;/code&gt; command and checking the command history for the &lt;code&gt;adduser bob&lt;/code&gt; command.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/kali-create-user-account-in-kali-552291" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/kali-create-user-account-in-kali-552291" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Kali Password Attacks with Hydra
&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%2Fkali-kali-password-attacks-with-hydra-552296" 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%2Fkali-kali-password-attacks-with-hydra-552296" alt="Kali Password Attacks with Hydra" 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; 20 minutes&lt;/p&gt;

&lt;p&gt;In this lab, explore ethical hacking with Kali Linux using Hydra for password attacks. Learn brute-force techniques on SSH credentials and web logins in a safe LabEx VM. Perform tasks like using wordlists for guessing passwords and logging results, with beginner-friendly guidance in a Kali Linux container environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/kali-kali-password-attacks-with-hydra-552296" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/kali-kali-password-attacks-with-hydra-552296" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Kali Password Cracking with John
&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%2Fkali-kali-password-cracking-with-john-552297" 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%2Fkali-kali-password-cracking-with-john-552297" alt="Kali Password Cracking with John" 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; 20 minutes&lt;/p&gt;

&lt;p&gt;In this lab, explore password cracking with Kali Linux using John the Ripper on the LabEx VM. Learn to crack Linux password hashes from /etc/shadow, use custom wordlists, compare with Hashcat, and save results. Perfect for beginners, this hands-on lab offers step-by-step guidance for penetration testing skills.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/kali-kali-password-cracking-with-john-552297" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/kali-kali-password-cracking-with-john-552297" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Kali Firewall Configuration with iptables
&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%2Fkali-kali-firewall-configuration-with-iptables-552294" 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%2Fkali-kali-firewall-configuration-with-iptables-552294" alt="Kali Firewall Configuration with iptables" 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; 20 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will learn to configure a firewall on Kali Linux using iptables. Explore essential skills like viewing rules, blocking IP addresses, allowing specific ports, and saving configurations. Gain hands-on experience in a Kali Linux container environment to enhance network security through effective traffic filtering.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/kali-kali-firewall-configuration-with-iptables-552294" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/kali-kali-firewall-configuration-with-iptables-552294" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Kali Reconnaissance with Nmap and DNS
&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%2Fkali-kali-reconnaissance-with-nmap-and-dns-552298" 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%2Fkali-kali-reconnaissance-with-nmap-and-dns-552298" alt="Kali Reconnaissance with Nmap and DNS" 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; 20 minutes&lt;/p&gt;

&lt;p&gt;In this lab, explore reconnaissance techniques using Kali Linux with a focus on network scanning and DNS querying. Learn to identify open ports and services with Nmap, enumerate services using scripts, query DNS records with dnsrecon, and save output for analysis, all within a secure LabEx VM environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/kali-kali-reconnaissance-with-nmap-and-dns-552298" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/kali-kali-reconnaissance-with-nmap-and-dns-552298" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Security is not a destination; it is a continuous process of learning and adaptation. By completing these five labs, you have moved beyond the basics and gained the practical experience needed to navigate the Kali Linux ecosystem with confidence. The tools are ready, the environment is secure, and the path is clear. Are you ready to start your journey into the world of ethical hacking?&lt;/p&gt;

</description>
      <category>kali</category>
      <category>cybersecurity</category>
      <category>hacking</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>4 Essential Docker Labs: Mastering Prometheus Alerts and Grafana Dashboards</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Mon, 30 Mar 2026 17:17:06 +0000</pubDate>
      <link>https://dev.to/labex/4-essential-docker-labs-mastering-prometheus-alerts-and-grafana-dashboards-2om3</link>
      <guid>https://dev.to/labex/4-essential-docker-labs-mastering-prometheus-alerts-and-grafana-dashboards-2om3</guid>
      <description>&lt;p&gt;Ready to master containerization and observability? Whether you are just starting your DevOps journey or looking to sharpen your monitoring skills, our curated Docker learning path is your perfect launchpad. We have designed these hands-on labs to take you from basic container security to building powerful, real-time monitoring dashboards—all within an interactive, browser-based environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grafana Dashboards
&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-grafana-dashboards-601821" 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-grafana-dashboards-601821" alt="Grafana Dashboards" 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; 20 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will learn to build a Grafana dashboard from scratch. You will create panels, write PromQL queries, and customize visualizations to display system metrics from a pre-configured Prometheus and Node Exporter setup.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/docker-grafana-dashboards-601821" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/docker-grafana-dashboards-601821" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prometheus Alerts
&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-prometheus-alerts-601826" 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-prometheus-alerts-601826" alt="Prometheus Alerts" 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; 25 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will learn how to use Prometheus's built-in alerting functionality. You will write alerting rules, load them into Prometheus, and simulate conditions to trigger an alert.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/docker-prometheus-alerts-601826" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/docker-prometheus-alerts-601826" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction to Container Security with Docker
&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%2Fcomptia-introduction-to-container-security-with-docker-594584" 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%2Fcomptia-introduction-to-container-security-with-docker-594584" alt="Introduction to Container Security with Docker" 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; 20 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will learn the fundamentals of container security by installing Docker, running a basic container, and inspecting its processes and security properties like resource limits.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/comptia-introduction-to-container-security-with-docker-594584" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/comptia-introduction-to-container-security-with-docker-594584" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prometheus Installation
&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-prometheus-installation-601811" 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-prometheus-installation-601811" alt="Prometheus Installation" 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; 25 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will learn how to install and run Prometheus using Docker, access its web UI, and explore its basic features.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/docker-prometheus-installation-601811" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/docker-prometheus-installation-601811" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These labs are more than just tutorials; they are your sandbox for building real-world expertise. By the time you finish, you will have the confidence to deploy, monitor, and secure your own containerized applications. Stop reading and start building—jump into these labs today and transform your technical skills!&lt;/p&gt;

</description>
      <category>docker</category>
      <category>prometheus</category>
      <category>grafana</category>
      <category>devops</category>
    </item>
    <item>
      <title>5 Practical Shell Scripts: Automate System Tasks and User Management</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Sun, 29 Mar 2026 17:06:56 +0000</pubDate>
      <link>https://dev.to/labex/5-practical-shell-scripts-automate-system-tasks-and-user-management-3a89</link>
      <guid>https://dev.to/labex/5-practical-shell-scripts-automate-system-tasks-and-user-management-3a89</guid>
      <description>&lt;p&gt;Transitioning from a casual Linux user to a power user requires more than just memorizing commands; it requires the ability to automate. Whether you are managing system configurations or streamlining daily tasks, Shell scripting is your most powerful ally. This learning path takes you through five hands-on challenges designed to turn you into a command-line pro, one script at a time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Search User in System 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%2Fshell-search-user-in-system-configuration-18277" 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%2Fshell-search-user-in-system-configuration-18277" alt="Search User in System Configuration" 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; 7 minutes&lt;/p&gt;

&lt;p&gt;In this challenge, we will write a script to search for a user present in the system. We will fetch the usernames from the /etc/passwd file and search for the given name in the list. This challenge will help us understand how to work with configuration files and how to search for a specific string in a file using shell scripting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/shell-search-user-in-system-configuration-18277" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/shell-search-user-in-system-configuration-18277" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Greet User Based on Time
&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%2Fshell-greet-user-based-on-time-18287" 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%2Fshell-greet-user-based-on-time-18287" alt="Greet User Based on Time" 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, we will create a script that greets the user based on the current time. We will use the date command to get the current time and then use cut and tr to extract the relevant information. We will also learn about bash configuration files and how to run a script as soon as we log-on to the system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/shell-greet-user-based-on-time-18287" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/shell-greet-user-based-on-time-18287" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Analyze Historical Commands
&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%2Flinux-analyze-historical-commands-17988" 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%2Flinux-analyze-historical-commands-17988" alt="Analyze Historical Commands" 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 will analyze the history of commands run on a Linux system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/linux-analyze-historical-commands-17988" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/linux-analyze-historical-commands-17988" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Check Mounted File System Usage
&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%2Fshell-check-mounted-file-system-usage-18275" 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%2Fshell-check-mounted-file-system-usage-18275" alt="Check Mounted File System Usage" 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; 7 minutes&lt;/p&gt;

&lt;p&gt;In this challenge, we will write a script to determine whether a given file system or mount point is mounted. We will use the df command to check if the file system is mounted or not. If it's mounted, we will print the free space available in it, otherwise, we will print an error message.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/shell-check-mounted-file-system-usage-18275" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/shell-check-mounted-file-system-usage-18275" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Convert Strings with Shell Script
&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%2Fshell-convert-strings-with-shell-script-18283" 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%2Fshell-convert-strings-with-shell-script-18283" alt="Convert Strings with Shell Script" 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, we will write a shell script to convert a given string to either upper case or lower case based on the user's input. We will use the tr command to perform the string conversion. The script will take a filename as input and ask the user to select the conversion option.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/shell-convert-strings-with-shell-script-18283" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/shell-convert-strings-with-shell-script-18283" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These five challenges are more than just exercises; they are the building blocks of professional system administration. By completing this path, you move from simply running commands to creating your own automation ecosystem. Ready to take control of your terminal? Dive into these labs today and start building your own library of automation tools.&lt;/p&gt;

</description>
      <category>shell</category>
      <category>linux</category>
      <category>automation</category>
      <category>bash</category>
    </item>
    <item>
      <title>4 Practical Web Projects: Build Vue Task Managers, Flask URL Shorteners, and Master HTML CSS</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Sat, 28 Mar 2026 17:06:29 +0000</pubDate>
      <link>https://dev.to/labex/4-practical-web-projects-build-vue-task-managers-flask-url-shorteners-and-master-html-css-29nd</link>
      <guid>https://dev.to/labex/4-practical-web-projects-build-vue-task-managers-flask-url-shorteners-and-master-html-css-29nd</guid>
      <description>&lt;p&gt;HTML is the backbone of the internet, but reading documentation only gets you so far. To truly master web development, you need to get your hands dirty. This curated learning path takes you from the basics of document structure to building functional, data-driven web applications. Whether you are a beginner or looking to sharpen your skills, these four interactive labs provide the perfect environment to practice real-world coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build a Vue.js Task Manager
&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%2Fhtml-build-a-vue-js-task-manager-445782" 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%2Fhtml-build-a-vue-js-task-manager-445782" alt="Build a Vue.js Task Manager" 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, we will be implementing a simple task manager using Vue.js.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/html-build-a-vue-js-task-manager-445782" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/html-build-a-vue-js-task-manager-445782" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Build URL Shortener with Flask MySQL
&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%2Fhtml-build-url-shortener-with-flask-mysql-445692" 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%2Fhtml-build-url-shortener-with-flask-mysql-445692" alt="Build URL Shortener with Flask MySQL" 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; 70 minutes&lt;/p&gt;

&lt;p&gt;This project guides you through creating a simple URL shortener service using Flask and MySQL. You'll learn to set up a database, design a web interface, and implement functionality to shorten URLs, search for URLs by tags, and view analytics. The project is beginner-friendly and offers a comprehensive insight into web development with Python and database management.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/html-build-url-shortener-with-flask-mysql-445692" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/html-build-url-shortener-with-flask-mysql-445692" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Apply Descendant Selectors in CSS
&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%2Fcss-apply-descendant-selectors-in-css-451023" 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%2Fcss-apply-descendant-selectors-in-css-451023" alt="Apply Descendant Selectors in CSS" 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; 25 minutes&lt;/p&gt;

&lt;p&gt;Learn how to use descendant selectors in CSS to style nested HTML elements, improving web page design and understanding selector targeting mechanisms.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/css-apply-descendant-selectors-in-css-451023" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/css-apply-descendant-selectors-in-css-451023" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Dynamization of Homepage Data
&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%2Fhtml-dynamization-of-homepage-data-445738" 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%2Fhtml-dynamization-of-homepage-data-445738" alt="Dynamization of Homepage Data" 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, we will dynamize the homepage data by requesting the article list data from the API using axios and binding it to List.vue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/html-dynamization-of-homepage-data-445738" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/html-dynamization-of-homepage-data-445738" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Theory is essential, but practice is what makes a developer. By completing these labs, you are not just learning syntax; you are building a portfolio of functional projects. Dive into these exercises today to transform your understanding of HTML and start building the web of tomorrow.&lt;/p&gt;

</description>
      <category>html</category>
      <category>webdev</category>
      <category>vue</category>
      <category>flask</category>
    </item>
    <item>
      <title>5 Scikit-learn Labs: From Linear Regression to Credit Card Risk Prediction</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Thu, 26 Mar 2026 17:21:19 +0000</pubDate>
      <link>https://dev.to/labex/5-scikit-learn-labs-from-linear-regression-to-credit-card-risk-prediction-168k</link>
      <guid>https://dev.to/labex/5-scikit-learn-labs-from-linear-regression-to-credit-card-risk-prediction-168k</guid>
      <description>&lt;p&gt;Ready to move beyond theory and start building real-world machine learning models? Scikit-learn is the industry standard for Python-based ML, but mastering it requires more than just reading documentation. This curated learning path offers a structured, hands-on approach to help you gain practical proficiency in model evaluation, regression, and classification through interactive coding challenges.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding Metrics and Scoring
&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-understanding-metrics-and-scoring-185172" 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-understanding-metrics-and-scoring-185172" alt="Understanding Metrics and Scoring" 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; 15 minutes&lt;/p&gt;

&lt;p&gt;Scikit-Learn, a popular Python library, offers a wide range of functions for building machine-learning models. Among these, one of the most important features it offers is the ability to score and evaluate models using various metrics. In this challenge, you will get hands-on experience working with some of these metrics and scoring methods.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/python-understanding-metrics-and-scoring-185172" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/python-understanding-metrics-and-scoring-185172" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Scikit-learn Cross-Validation
&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%2Fsklearn-scikit-learn-cross-validation-596487" 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%2Fsklearn-scikit-learn-cross-validation-596487" alt="Scikit-learn Cross-Validation" 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; 25 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will learn how to perform cross-validation using scikit-learn to evaluate the performance of a machine learning model more robustly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/sklearn-scikit-learn-cross-validation-596487" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/sklearn-scikit-learn-cross-validation-596487" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Simple Handwritten Character Recognition Classifier
&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%2Fsklearn-simple-handwritten-character-recognition-classifier-300256" 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%2Fsklearn-simple-handwritten-character-recognition-classifier-300256" alt="Simple Handwritten Character Recognition Classifier" 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, we will be implementing a simple handwritten character recognition classifier. Using the DIGITS dataset provided by the scikit-learn library, we will build a function that can classify a single sample of a handwritten character image. The objective is to create a function that takes in a list representing the pixel values of the image and returns the predicted label for the character. The function should achieve a cross-validated classification accuracy of at least 80% on the DIGITS dataset.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/sklearn-simple-handwritten-character-recognition-classifier-300256" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/sklearn-simple-handwritten-character-recognition-classifier-300256" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Linear Regression
&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-linear-regression-185171" 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-linear-regression-185171" alt="Linear Regression" 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; 15 minutes&lt;/p&gt;

&lt;p&gt;Discover the power of Linear Regression for prediction by getting hands-on with scikit-learn in Python. This challenge will provide you with a practical understanding of implementing and interpreting Linear Regression models. By the end of this challenge, you will be able to apply your Linear Regression skills to real-world data.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Credit Card Holder Risk Prediction
&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%2Fsklearn-credit-card-holder-risk-prediction-300204" 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%2Fsklearn-credit-card-holder-risk-prediction-300204" alt="Credit Card Holder Risk Prediction" 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, we will build a machine learning classification model to predict the credit card holder's risk status based on their historical billing information, age, gender, education level, and marital status. The objective is to achieve an accuracy of at least 0.8 on the testing dataset. We will be using the provided training dataset to train the model and then make predictions on the testing dataset. Therefore, we need to preprocess the data using Pandas and utilize the classification prediction models provided by scikit-learn. The final prediction results should be stored in the credit_risk_pred.csv data file, where each record corresponds to a predicted risk status.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/sklearn-credit-card-holder-risk-prediction-300204" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/sklearn-credit-card-holder-risk-prediction-300204" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Machine learning is a skill best learned by doing. By completing these five labs, you will transition from a beginner to a practitioner capable of handling real-world data challenges. Dive into the LabEx data science playground today and start building your portfolio with these practical, high-impact exercises.&lt;/p&gt;

</description>
      <category>scikitlearn</category>
      <category>machinelearning</category>
      <category>python</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Master Wireshark: 3 Essential Labs for Nmap Scanning and IPv6 Traffic Analysis</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Wed, 25 Mar 2026 17:20:14 +0000</pubDate>
      <link>https://dev.to/labex/master-wireshark-3-essential-labs-for-nmap-scanning-and-ipv6-traffic-analysis-4h4j</link>
      <guid>https://dev.to/labex/master-wireshark-3-essential-labs-for-nmap-scanning-and-ipv6-traffic-analysis-4h4j</guid>
      <description>&lt;p&gt;Network visibility is the cornerstone of cybersecurity. If you have ever wondered how to peek behind the curtain of your network traffic, Wireshark is your most powerful ally. This curated learning path takes you from basic reconnaissance to advanced protocol dissection, providing a hands-on environment to sharpen your skills without the fluff of traditional video tutorials.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn Basic Nmap Scanning 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%2Fnmap-learn-basic-nmap-scanning-techniques-415929" 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%2Fnmap-learn-basic-nmap-scanning-techniques-415929" alt="Learn Basic Nmap Scanning Techniques" 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; 25 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you'll learn fundamental Nmap scanning techniques. You'll set up a web server, discover open ports, detect service versions and operating systems, and utilize Nmap scripts for advanced scanning. Enhance your network security skills with practical exercises.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/nmap-learn-basic-nmap-scanning-techniques-415929" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/nmap-learn-basic-nmap-scanning-techniques-415929" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Network Analysis with Wireshark
&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%2Fwireshark-network-analysis-with-wireshark-415958" 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%2Fwireshark-network-analysis-with-wireshark-415958" alt="Network Analysis with Wireshark" 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; 28 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will learn how to perform network analysis using Wireshark. You'll install Wireshark, capture network traffic, analyze packet data, and use filters to identify and investigate network issues. This hands-on experience will enhance your cybersecurity skills.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/wireshark-network-analysis-with-wireshark-415958" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/wireshark-network-analysis-with-wireshark-415958" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Analyze IPv6 Traffic with Wireshark
&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%2Fwireshark-analyze-ipv6-traffic-with-wireshark-415950" 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%2Fwireshark-analyze-ipv6-traffic-with-wireshark-415950" alt="Analyze IPv6 Traffic with Wireshark" 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; 15 minutes&lt;/p&gt;

&lt;p&gt;In this lab, you will learn how to analyze IPv6 traffic using Wireshark. You'll capture IPv6 packets, filter them for specific information, and examine IPv6 extension headers to understand the details of IPv6 communication. This hands-on experience will enhance your network analysis skills.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/wireshark-analyze-ipv6-traffic-with-wireshark-415950" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/wireshark-analyze-ipv6-traffic-with-wireshark-415950" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These labs are designed to transform you from a passive observer into an active network analyst. By combining Nmap reconnaissance with deep-packet inspection in Wireshark, you gain the technical confidence to troubleshoot issues and detect security threats in real-time. Start your first lab today and take control of your network data.&lt;/p&gt;

</description>
      <category>wireshark</category>
      <category>networking</category>
      <category>cybersecurity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Master Python CLI, Datetime, Decorators, and Kwargs: 4 Hands-On Labs</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Tue, 24 Mar 2026 17:18:51 +0000</pubDate>
      <link>https://dev.to/labex/master-python-cli-datetime-decorators-and-kwargs-4-hands-on-labs-233l</link>
      <guid>https://dev.to/labex/master-python-cli-datetime-decorators-and-kwargs-4-hands-on-labs-233l</guid>
      <description>&lt;p&gt;Embarking on your Python journey can feel like staring at a blank terminal, but the path to mastery is paved with practical, hands-on challenges. Whether you are automating your workflow or refining your function logic, these four curated labs are designed to transform you from a syntax-learner into a confident Python developer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Crafting Command-Line Python Programs
&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-crafting-command-line-python-programs-73" 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-crafting-command-line-python-programs-73" alt="Crafting Command-Line Python Programs" 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; 35 minutes&lt;/p&gt;

&lt;p&gt;The Python command line interface, also known as the command line or the command-line interface (CLI), is a way to interact with a computer program by typing commands into a terminal or command prompt. It allows users to execute a program and pass arguments to it, as well as receive output from the program in the form of text. The command line interface is particularly useful for automating tasks, running scripts, and performing advanced or complex operations that would be difficult or impossible to do through a graphical user interface (GUI).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/python-crafting-command-line-python-programs-73" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/python-crafting-command-line-python-programs-73" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Dates and Times
&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-dates-and-times-75" 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-dates-and-times-75" alt="Dates and Times" 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; 40 minutes&lt;/p&gt;

&lt;p&gt;The Python datetime module provides a range of classes for manipulating dates and times. In this lab, we will explore some of the most commonly used classes and functions from this module, and learn how to use them to perform a variety of tasks such as working with dates, times, and time deltas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/python-dates-and-times-75" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/python-dates-and-times-75" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Python Decorator Fundamentals
&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-python-decorator-fundamentals-76" 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-python-decorator-fundamentals-76" alt="Python Decorator Fundamentals" 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; 15 minutes&lt;/p&gt;

&lt;p&gt;Decorators in Python allow you to modify or enhance the behavior of a function, class, or method. They are a way to dynamically alter the functionality of your code without changing the source code. In this lab, we will explore the basics of decorators and how to use them to add functionality to your code.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Variable Keyword Arguments: Full Name
&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-variable-keyword-arguments-full-name-108626" 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-variable-keyword-arguments-full-name-108626" alt="Variable Keyword Arguments: Full Name" 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 lab, we are tasked with creating a function named full_name() that takes a variable number of keyword arguments, printing them inside the function, and then calling the function with two string inputs assigned to variables first and last.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/python-variable-keyword-arguments-full-name-108626" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/python-variable-keyword-arguments-full-name-108626" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These four labs are more than just exercises; they are the building blocks of a versatile programmer. By moving from CLI interaction to advanced function manipulation, you are gaining the practical experience that separates hobbyists from professionals. Dive into these labs today and start building the tools you have always imagined.&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>automation</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>3 Essential Shell Scripting Projects: From Triangle Patterns to Disk Monitoring</title>
      <dc:creator>Labby</dc:creator>
      <pubDate>Mon, 23 Mar 2026 17:16:27 +0000</pubDate>
      <link>https://dev.to/labex/3-essential-shell-scripting-projects-from-triangle-patterns-to-disk-monitoring-36mh</link>
      <guid>https://dev.to/labex/3-essential-shell-scripting-projects-from-triangle-patterns-to-disk-monitoring-36mh</guid>
      <description>&lt;p&gt;Transitioning from a casual terminal user to a power user requires more than just memorizing commands; it requires the ability to weave those commands into powerful, automated scripts. Whether you are managing system resources or processing text, Shell scripting is your ultimate toolkit. In this guide, we explore three hands-on LabEx challenges designed to take you from basic syntax to practical system administration automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Right Angle Triangle Pattern
&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%2Fshell-right-angle-triangle-pattern-18289" 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%2Fshell-right-angle-triangle-pattern-18289" alt="Right Angle Triangle Pattern" 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, we will learn how to create a pattern using loops in a shell script. We will take input from the user and generate a pattern of numbers in the format mentioned in the problem statement. This will help us understand the working of loops in shell scripts and how to execute a bash script.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/shell-right-angle-triangle-pattern-18289" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/shell-right-angle-triangle-pattern-18289" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Display Filesystem Free Space Utilization
&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%2Fshell-display-filesystem-free-space-utilization-18309" 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%2Fshell-display-filesystem-free-space-utilization-18309" alt="Display Filesystem Free Space Utilization" 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;The freeSpace.sh script is designed to display the names of any file-system which have less than n% free space available. It makes use of the df, tr and cut commands to retrieve information about the file-systems present in the system and then filters out the ones that have less than n% free space remaining.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/shell-display-filesystem-free-space-utilization-18309" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/shell-display-filesystem-free-space-utilization-18309" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Print File Lines Using Bash Commands
&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%2Fshell-print-file-lines-using-bash-commands-18301" 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%2Fshell-print-file-lines-using-bash-commands-18301" alt="Print File Lines Using Bash Commands" 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, we will write a shell script to print the contents of a file from a given line number to the next given number of lines. We will use the head and tail commands to achieve this. The script will take three command-line arguments: the starting line number, the number of lines to print, and the filename.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labex.io/labs/shell-print-file-lines-using-bash-commands-18301" rel="noopener noreferrer"&gt;Practice on LabEx →&lt;/a&gt; | &lt;a href="https://labex.io/tutorials/shell-print-file-lines-using-bash-commands-18301" rel="noopener noreferrer"&gt;Tutorial →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These three experiments are more than just exercises; they are the foundation of your journey toward becoming a Linux automation expert. By practicing these skills in an interactive environment, you are building the muscle memory needed to handle real-world infrastructure challenges. Ready to level up your terminal game? Dive into these labs today and start writing scripts that work for you.&lt;/p&gt;

</description>
      <category>shell</category>
      <category>linux</category>
      <category>bash</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
