<?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: Ayomiku Olatunji John</title>
    <description>The latest articles on DEV Community by Ayomiku Olatunji John (@ayomiku222).</description>
    <link>https://dev.to/ayomiku222</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%2F435194%2F98aca9c2-cf7c-4a8b-920b-6b7b60c558fa.jpeg</url>
      <title>DEV Community: Ayomiku Olatunji John</title>
      <link>https://dev.to/ayomiku222</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ayomiku222"/>
    <language>en</language>
    <item>
      <title>Crushing Work Burnout: Developer's Guide to Managing Stress and Thriving</title>
      <dc:creator>Ayomiku Olatunji John</dc:creator>
      <pubDate>Thu, 30 Nov 2023 15:59:33 +0000</pubDate>
      <link>https://dev.to/ayomiku222/crushing-work-burnout-developers-guide-to-managing-stress-and-thriving-55bo</link>
      <guid>https://dev.to/ayomiku222/crushing-work-burnout-developers-guide-to-managing-stress-and-thriving-55bo</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Embarking on a journey in the realm of technology often leads to confronting the specter of burnout. As a developer immersed in the world of coding, I've navigated through the challenges of prolonged screen time, relentless bug fixing, and the overwhelming pressure of meeting deadlines. Drawing from my own experiences, I've discovered several effective strategies that have helped me maintain a healthy balance between my professional obligations and personal well-being. These insights, rooted in personal encounters and tailored for the tech-savvy community, aim to offer practical guidance in mitigating burnout while enhancing productivity and mental wellness.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Structured Work Hours:&lt;/strong&gt;&lt;br&gt;
Try not to spend more than 3 hours continuously working on the computer. Take breaks for rest and meals, then return to work for another 3 hours. For instance, wake up at 6 am, go to the gym, return by 8 am, and code until 11:30 am. Remember to take breaks for meals and showers while continuing your coding tasks. Aim to finish work by midnight for a decent sleep schedule, even if you have multiple jobs. Currently, I'm in the middle of a 3-hour work session. I've selected a task, worked on it, and submitted my code for review. Now, I'm about to start another task, which I estimate will take an hour before I take another break. I'll stop around 5:30 pm and resume work from 6 pm to 8 pm.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Clear Task Management:&lt;/strong&gt;&lt;br&gt;
Plan your tasks before you start working and stick to that plan. Focusing on specific goals helps avoid wasting time staring at the screen or trying to fix problems that might not have solutions. When you receive new tasks from the company, make sure to put your efforts into achieving clear and practical results. As I mentioned earlier, I always have a clear plan once I start using my computer. I know exactly what I need to do, and I begin right away because time is precious. Wasting time can cause trouble, so it's important not to get overwhelmed trying to fix bugs at any cost. Understanding your coding tasks or learning objectives beforehand makes things much easier.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Diversify Leisure Time(One of the most important):&lt;/strong&gt;&lt;br&gt;
Set aside time for watching movies, even during weekdays. Make sure to take a break of at least 2 days; personal time is really important. Many developers tend to switch from work to another screen after work hours; it's essential to avoid falling into that habit. If you ever check my status on a Friday night, you'll understand what I mean by taking time for leisure. I watch movies, take a break from coding, and sometimes head to the football center to catch a match like Manu Vs Arsenal. Your brain needs different kinds of excitement to function well. Coding is already tough on the brain, so it's crucial to give it a break and let it relax. I typically avoid working on Saturdays and Sundays, although sometimes I do work on Saturdays because of my startups. But in general, I make sure to take proper rest.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Social Engagement Beyond Work:&lt;/strong&gt;&lt;br&gt;
Develop connections with other developers or people outside of the tech world. Engage in conversations and enjoy moments of laughter that are not related to technology. Human interaction, away from screens, is crucial for refreshing your mind. I enjoy discussing various topics like politics, women, history, and more. Recently, I had a great conversation with my friends while working, and it made a big difference. I'm not suggesting you entertain distractions, but rather, learn to use socializing to your advantage. It's important to find joy in life to be truly happy. Working excessively can take away the enjoyment from life, and I know firsthand what bugs in code can do to one's mental state, especially when dealing with complex applications using tools like Playwright and React. Surrounding yourself with people and enjoying time outside of work can significantly contribute to your happiness and well-being.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prioritize Sleep:&lt;/strong&gt;&lt;br&gt;
It's crucial to establish a routine that involves wrapping up your work or shutting down your computer by 1 am, or perhaps extending to 2 am if you're learning new skills for your job. Regardless of when you finish work, it's essential to take an afternoon nap. Even if you juggle multiple jobs or have a packed schedule, strive to maintain a balanced routine. This means setting a specific time to stop working late into the night and ensuring you take breaks during the day. Sleep plays a significant role in your overall health, impacting both your mental and physical well-being. It's not something to compromise on because adequate sleep helps you remain alert and focused while you work.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt; &lt;br&gt;
In conclusion, preventing exhaustion from work is achievable through a variety of strategies, as highlighted earlier. It's crucial for developers to establish clear and structured work schedules, allocating specific time frames for work and incorporating regular breaks. Having a precise plan of action before diving into tasks and ensuring diverse leisure activities beyond work are equally vital. Additionally, fostering social connections by spending quality time with friends or engaging in non-tech-related discussions contributes significantly to well-being.&lt;/p&gt;

&lt;p&gt;Moreover, prioritizing sufficient sleep is fundamental. Adequate rest plays a pivotal role in maintaining overall health and mental acuity. Striking a balance between work commitments and self-care is essential. When developers are well-rested and emotionally balanced, they're better equipped to tackle challenges, enhance problem-solving skills, and accomplish tasks more efficiently. This equilibrium between professional obligations and personal well-being results in increased productivity and improved outcomes.&lt;/p&gt;

&lt;p&gt;In essence, by implementing these strategies - setting structured work hours, maintaining task clarity, diversifying leisure activities, nurturing social connections, and prioritizing ample sleep - developers can create a harmonious blend of work and self-care. This balance not only elevates productivity but also ensures a healthier and happier state of being, fostering a more vibrant and effective professional life.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A Comprehensive Guide to Docker Commands: Managing Containers Like a Pro</title>
      <dc:creator>Ayomiku Olatunji John</dc:creator>
      <pubDate>Tue, 17 Oct 2023 13:10:27 +0000</pubDate>
      <link>https://dev.to/ayomiku222/a-comprehensive-guide-to-docker-commands-managing-containers-like-a-pro-43li</link>
      <guid>https://dev.to/ayomiku222/a-comprehensive-guide-to-docker-commands-managing-containers-like-a-pro-43li</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E2v-wOI4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6i6lz1chuuzssk4s81xn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E2v-wOI4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6i6lz1chuuzssk4s81xn.png" alt="Image description" width="279" height="131"&gt;&lt;/a&gt;&lt;strong&gt;Introduction:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Docker has revolutionized the world of containerization, making it easier than ever to package, distribute, and manage applications and their dependencies. Whether you're a beginner looking to get started with Docker or an experienced user seeking to deepen your knowledge, this comprehensive guide to Docker commands will equip you with the skills to manage containers like a pro.&lt;/p&gt;

&lt;p&gt;1.. &lt;strong&gt;docker run - Spinning Up Containers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Explanation of creating and starting containers from images.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Usage examples and options.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tips for running interactive sessions and detached containers.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;2.. &lt;strong&gt;docker pull - Downloading Images:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understanding image acquisition from container registries.&lt;/li&gt;
&lt;li&gt;Steps to pull images from popular repositories.&lt;/li&gt;
&lt;li&gt;Image versioning and best practices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;3.. &lt;strong&gt;docker build - Crafting Docker Images:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A detailed look at Dockerfile and image creation.&lt;/li&gt;
&lt;li&gt;Building custom images and tagging them.&lt;/li&gt;
&lt;li&gt;Optimizing Docker image building.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;4.. &lt;strong&gt;docker ps and docker ps -a - Managing Containers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Listing running and all containers, including stopped ones.&lt;/li&gt;
&lt;li&gt;Filtering and displaying container information.&lt;/li&gt;
&lt;li&gt;Container lifecycle management with docker stop, docker start, and docker restart.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;5.. &lt;strong&gt;docker exec - Executing Commands Inside Containers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Running commands within running containers.&lt;/li&gt;
&lt;li&gt;Use cases for managing and troubleshooting containers.&lt;/li&gt;
&lt;li&gt;Interactive and detached execution modes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;6.. &lt;strong&gt;docker rm and docker rmi - Removing Containers and Images:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to clean up your environment by removing containers and images.&lt;/li&gt;
&lt;li&gt;Safely deleting containers and images while preserving data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;7.. &lt;strong&gt;docker images - Listing Available Images:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Displaying all available Docker images.&lt;/li&gt;
&lt;li&gt;Sorting and filtering images based on criteria.&lt;/li&gt;
&lt;li&gt;Identifying image IDs and sizes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;8.. &lt;strong&gt;docker volume create and docker network create - Managing Data and Networks:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating Docker volumes for data persistence.&lt;/li&gt;
&lt;li&gt;Setting up Docker networks for container communication.&lt;/li&gt;
&lt;li&gt;Real-world use cases for volumes and networks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;9.. &lt;strong&gt;docker-compose - Managing Multi-Container Applications:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Introduction to Docker Compose for orchestrating multi-container applications.&lt;/li&gt;
&lt;li&gt;Using YAML files to define services and dependencies.&lt;/li&gt;
&lt;li&gt;Commands for starting, scaling, and stopping services.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;10.. &lt;strong&gt;docker logs and docker inspect - Logging and Container Inspection:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Viewing container logs and diagnosing issues.&lt;/li&gt;
&lt;li&gt;In-depth container inspection with docker inspect.&lt;/li&gt;
&lt;li&gt;Extracting useful information from container metadata.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;11.. &lt;strong&gt;docker save and docker load - Image Archiving:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Archiving and exporting Docker images.&lt;/li&gt;
&lt;li&gt;Importing images from tarball archives.&lt;/li&gt;
&lt;li&gt;Efficient image sharing with colleagues and across environments.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;12.. &lt;strong&gt;docker login, docker push, and docker pull - Registry Interaction:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Logging in to Docker registries for image access.&lt;/li&gt;
&lt;li&gt;Uploading (pushing) and downloading (pulling) images.&lt;/li&gt;
&lt;li&gt;Securely storing and distributing Docker images.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt;&lt;br&gt;
Docker is a versatile and powerful tool for containerization, and mastering Docker commands is crucial for effective container management. With this comprehensive guide, you'll be well-equipped to handle a wide range of Docker tasks, from creating and running containers to managing images, networks, and data. Whether you're a developer, system administrator, or DevOps engineer, this knowledge will be invaluable in your journey towards containerized application deployment.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How To Cache Playwright Browser On Github Actions</title>
      <dc:creator>Ayomiku Olatunji John</dc:creator>
      <pubDate>Mon, 16 Oct 2023 17:06:53 +0000</pubDate>
      <link>https://dev.to/ayomiku222/how-to-cache-playwright-browser-on-github-actions-51o6</link>
      <guid>https://dev.to/ayomiku222/how-to-cache-playwright-browser-on-github-actions-51o6</guid>
      <description>&lt;p&gt;Many of us who find ourselves tasked with automating processes, have likely been recommended or suggested Playwright as the go-to tool for our company's automation needs. Playwright empowers us to craft comprehensive end-to-end tests for our software applications, making it an indispensable resource for every software engineer.&lt;/p&gt;

&lt;p&gt;For those of us who are already experienced with creating tests using Playwright and wish to seamlessly integrate these tests into our GitHub Actions workflow, the pace at which our tests run can be a source of frustration. Waiting for test results on GitHub Actions can sometimes be a time-consuming process.&lt;/p&gt;

&lt;p&gt;The good news is, I've come across an effective solution that can significantly boost the speed and efficiency of running Playwright tests within the GitHub Action Continuous Integration (CI) environment. This enhancement promises to not only save valuable time but also streamline our CI/CD pipeline, resulting in a more productive and reliable development process. In the following sections, I'll outline the steps and strategies to achieve these accelerated Playwright test runs on GitHub Actions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name: Playwright Tests
on:
  push:
    branches: [ main, develop ]
  pull_request:
    branches: [ main, develop ]
jobs:
  test:
    timeout-minutes: 60
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - uses: actions/setup-node@v2
      with:
        node-version: '18.x'
    - name: Get installed Playwright version
      id: playwright-version
      run: echo "PLAYWRIGHT_VERSION=$(node -e "console.log(require('./package-lock.json').dependencies['@playwright/test'].version)")" &amp;gt;&amp;gt; $GITHUB_ENV
    - name: Cache playwright binaries
      uses: actions/cache@v3
      id: playwright-cache
      with:
        path: |
          ~/.cache/ms-playwright
        key: ${{ runner.os }}-playwright-${{ env.PLAYWRIGHT_VERSION }}
    - run: npm ci
    - run: npx playwright install --with-deps
      if: steps.playwright-cache.outputs.cache-hit != 'true'
    - run: npx playwright install-deps
      if: steps.playwright-cache.outputs.cache-hit != 'true'

    - name: Run Playwright tests
      run: npx playwright test
    - uses: actions/upload-artifact@v2
      if: always()
      with:
        name: playwright-test-results
        path: test-results/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reference links:&lt;/p&gt;

&lt;p&gt;1.&lt;a href="https://playwrightsolutions.com/playwright-github-action-to-cache-the-browser-binaries/"&gt;https://playwrightsolutions.com/playwright-github-action-to-cache-the-browser-binaries/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.&lt;a href="https://github.com/microsoft/playwright/issues/7249#issuecomment-1385567519"&gt;https://github.com/microsoft/playwright/issues/7249#issuecomment-1385567519&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
