<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Matus Stafura: SEO, Marketing &amp; Programming on Matus Stafura</title>
    <link>https://stafura.dev/</link>
    <description>Recent content in Matus Stafura: SEO, Marketing &amp; Programming on Matus Stafura</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <lastBuildDate>Sat, 18 Jul 2026 07:34:33 +0200</lastBuildDate>
    <atom:link href="https://stafura.dev/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Solving Krashen&#39;s i&#43;1: A 0–100 Difficulty Scale for Language Reading Practice</title>
      <link>https://stafura.dev/krashen-i-plus-1-difficulty-scale-comprehensible-input/</link>
      <pubDate>Sat, 18 Jul 2026 07:34:33 +0200</pubDate>
      <guid>https://stafura.dev/krashen-i-plus-1-difficulty-scale-comprehensible-input/</guid>
      <description>&lt;h2 id=&#34;the-problem-with-graded-reading&#34;&gt;The problem with graded reading&lt;/h2&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve spent months trying to find interesting reading material that is just above my level of competence, but it is very hard to find. I have tried reading news, but those are full of metaphors or very advanced grammar and vocab and graded readers are often boring and not interesting enough to read regularly. Learning anything hard comes with this same friction — I wrote about &lt;a href=&#34;https://stafura.dev/the-one-magic-word-that-helps-you-learn-anything-especially-the-hard-stuff&#34;&gt;the one word that helps you push through it&lt;/a&gt; a while back, and it applies just as much to language reading as it does to everything else.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatically Restart MariaDB on Crash in Ubuntu with systemd</title>
      <link>https://stafura.dev/auto-restart-mariadb-ubuntu-systemd/</link>
      <pubDate>Thu, 16 Jul 2026 07:59:24 +0200</pubDate>
      <guid>https://stafura.dev/auto-restart-mariadb-ubuntu-systemd/</guid>
      <description>&lt;h2 id=&#34;why-do-you-need-to-autorestart-db&#34;&gt;Why do you need to autorestart DB?&lt;/h2&gt;&#xA;&lt;p&gt;Database can crash from any problems like when the system runs out of memory, full disk and so on. And the website will be down until you notice it and restart the database manually.&lt;/p&gt;&#xA;&lt;p&gt;The bare minimum you can do is to set it to restart automatically in Linux with systemd.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Note that this will not start DB when it is manually stopped.&lt;/p&gt;</description>
    </item>
    <item>
      <title>On decision making: Why Half-Finished Is Worse Than Never Started</title>
      <link>https://stafura.dev/why-half-finished-is-worse-than-never-started/</link>
      <pubDate>Sat, 13 Dec 2025 09:55:02 +0100</pubDate>
      <guid>https://stafura.dev/why-half-finished-is-worse-than-never-started/</guid>
      <description>&lt;p&gt;When you reflect on your personal history, how many times have you started something only to quit prematurely? Why start something without finishing it? That makes no sense. What was the point?&lt;/p&gt;&#xA;&lt;p&gt;Imagine running a marathon and stopping halfway, or starting a business project and abandoning it in the middle. You&amp;rsquo;ve invested time, energy, and resources for zero return.&lt;/p&gt;&#xA;&lt;p&gt;The result can be terrifying. A waste of time. A commodity we have less and less every single second. And if you examine how many tasks you start but don&amp;rsquo;t finish in a year, the effect is staggering: &lt;strong&gt;dozens or hundreds of hours spent on actions that produce nothing&lt;/strong&gt;. &lt;em&gt;A waste of life&lt;/em&gt;. Time passing by with only the fleeting dopamine of &amp;ldquo;just doing something&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why Motivation Is Irrelevant to Getting Things Done</title>
      <link>https://stafura.dev/why-motivation-is-irrelevant-to-getting-things-done/</link>
      <pubDate>Sat, 06 Dec 2025 09:55:06 +0100</pubDate>
      <guid>https://stafura.dev/why-motivation-is-irrelevant-to-getting-things-done/</guid>
      <description>&lt;p&gt;Have you ever felt tired or unmotivated before starting a task? Of course you have. We all have. By task, I mean anything you have planned to do or needs to be done—work, study, home chores, exercise, you name it.&lt;/p&gt;&#xA;&lt;p&gt;There are many ways we try to manipulate the situation to get things done: a quick nap, more coffee, a motivational video. Just any external influence to use or blame will do. But ask yourself: how much time, resources, and energy are you wasting by watching videos, listening to podcasts, or psyching yourself up before doing this &lt;strong&gt;EVERY SINGLE TIME&lt;/strong&gt;?&lt;/p&gt;</description>
    </item>
    <item>
      <title>4 Daily Practices That Build Lifelong Intelligence</title>
      <link>https://stafura.dev/4-daily-practices-that-build-lifelong-intelligence/</link>
      <pubDate>Sat, 29 Nov 2025 10:34:44 +0100</pubDate>
      <guid>https://stafura.dev/4-daily-practices-that-build-lifelong-intelligence/</guid>
      <description>&lt;p&gt;Intelligent people share certain traits and practices. In this article, I want to highlight the ones that will develop lifelong skills through simple daily practice.&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-thinking-several-steps-ahead&#34;&gt;1. Thinking Several Steps Ahead&lt;/h2&gt;&#xA;&lt;p&gt;In chess, if you don&amp;rsquo;t consider the consequences of your moves, you&amp;rsquo;ll lose. There&amp;rsquo;s no way to win if your actions are random and unplanned.&lt;/p&gt;&#xA;&lt;p&gt;What separates intelligent people from irresponsible or careless ones is the ability to foresee the likely results of their actions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Finding Focus: How Brown Noise Transformed My Study Sessions</title>
      <link>https://stafura.dev/finding-focus-how-brown-noise-transformed-my-study-sessions/</link>
      <pubDate>Sat, 22 Nov 2025 10:30:46 +0100</pubDate>
      <guid>https://stafura.dev/finding-focus-how-brown-noise-transformed-my-study-sessions/</guid>
      <description>&lt;p&gt;I want to share a tip that personally helped me increase my efficiency in studying and working.&lt;/p&gt;&#xA;&lt;p&gt;The problem is that if you need to work and study efficiently, a focused, undisturbed environment is essential. But once you have that, the next &lt;strong&gt;problem is the random thoughts&lt;/strong&gt; that arise when you sit in front of a computer or books.&lt;/p&gt;&#xA;&lt;p&gt;Many of us use music to solve this. I tried listening to my favorite tracks, but I found that once I fell into deeper concentration, it was very brief. The reason is that my mind started drifting into memories or focused on certain refrains or riffs that I liked, and the lyrics were distracting too.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My Tips for LeetCode Success: Learning DSA the Right Way</title>
      <link>https://stafura.dev/my-tips-for-leetcode-success-learning-dsa-the-right-way/</link>
      <pubDate>Sat, 15 Nov 2025 10:31:29 +0100</pubDate>
      <guid>https://stafura.dev/my-tips-for-leetcode-success-learning-dsa-the-right-way/</guid>
      <description>&lt;p&gt;I have solved over 500 problems and this is mostly a personal reminder of tips and thoughts on solving DSA on Leetcode or any other alternative platform.&lt;/p&gt;&#xA;&lt;h2 id=&#34;main-goal&#34;&gt;Main Goal&lt;/h2&gt;&#xA;&lt;p&gt;I am not preparing for any interview and I don&amp;rsquo;t plan to work for any big tech company. So why am I spending my time solving DSA?&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Because I want to be the best I can be.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;And If DSA helps me to get closer, then there&amp;rsquo;s no debate.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bash Script Testing with Bats: Complete Beginner&#39;s Guide</title>
      <link>https://stafura.dev/bash-script-testing-with-bats/</link>
      <pubDate>Sat, 25 Oct 2025 12:55:12 +0200</pubDate>
      <guid>https://stafura.dev/bash-script-testing-with-bats/</guid>
      <description>&lt;p&gt;One of the pillars of programming is testing the code. Most of the time, I wrote simple bash scripts without tests(bruh, but why waste time writing tests for couple of lines, right?).&lt;/p&gt;&#xA;&lt;p&gt;But recently I started developing a Go app with bash support, so it&amp;rsquo;s time to explore testing suites for bash.&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&#xA;&#xA;&lt;picture&gt;&#xA;    &#xA;      &#xA;&#xA;      &#xA;&#xA;      &#xA;      &#xA;&#xA;      &lt;source srcset=&#34;https://stafura.dev/images/blog/aa4xi5.webp&#34; type=&#34;image/webp&#34;&gt;&#xA;&#xA;    &#xA;&#xA;    &#xA;&#xA;    &lt;img&#xA;      src=&#34;https://stafura.dev/images/blog/aa4xi5.jpg&#34;&#xA;      alt=&#34;Bats Logo&#34;&#xA;      loading=&#34;lazy&#34;&#xA;      decoding=&#34;async&#34;&#xA;      width=&#34;623&#34;&#xA;      height=&#34;401&#34;&#xA;    /&gt;&#xA;&#xA;    &#xA;  &lt;/picture&gt;&#xA;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;I found BATS (Bash Automated Testing System) and I think I don&amp;rsquo;t need to look further. It is simple to understand, with support for assertions, custom helpers, and more.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Schedule Automatic Startup on iMac</title>
      <link>https://stafura.dev/how-to-schedule-automatic-startup-on-imac/</link>
      <pubDate>Sat, 11 Oct 2025 09:56:32 +0200</pubDate>
      <guid>https://stafura.dev/how-to-schedule-automatic-startup-on-imac/</guid>
      <description>&lt;h2 id=&#34;why&#34;&gt;Why?&lt;/h2&gt;&#xA;&lt;p&gt;I have an old iMac that takes ages to start up and load all the apps I need and one cannot change the old hard drive easily to an SSD (boooh Apple).&lt;/p&gt;&#xA;&lt;p&gt;So if I want to start working at 6am, I need my iMac to launch at 5:45am.&lt;/p&gt;&#xA;&lt;p&gt;To achieve that you can use the &lt;code&gt;pmset&lt;/code&gt; command in the terminal.&lt;/p&gt;&#xA;&lt;h2 id=&#34;heres-how-to-do-it&#34;&gt;Here’s how to do it:&lt;/h2&gt;&#xA;&lt;p&gt;Open the Terminal app on your iMac and run the following command:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Automatically Update a Git Repo on Login in Linux</title>
      <link>https://stafura.dev/how-to-automatically-update-a-git-repo-on-login-in-linux/</link>
      <pubDate>Tue, 16 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/how-to-automatically-update-a-git-repo-on-login-in-linux/</guid>
      <description>&lt;h2 id=&#34;why-would-you-want-to-do-this&#34;&gt;Why would you want to do this?&lt;/h2&gt;&#xA;&lt;p&gt;Yeah, yeah, it happens even to the best of us.&lt;/p&gt;&#xA;&lt;p&gt;You start committing changes to your repo, and then you forget to push them.&lt;/p&gt;&#xA;&lt;p&gt;Then you go to another machine, and you realize that your repo is outdated.&lt;/p&gt;&#xA;&lt;p&gt;BRUH!&lt;/p&gt;&#xA;&lt;p&gt;To prevent this, you can easily set up a systemd user service that runs a script to &lt;code&gt;git pull&lt;/code&gt; your repo every time you log in.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Boost Your Magento 2 Store with Free Phone &amp; VAT ID Validation Modules</title>
      <link>https://stafura.dev/magento2-phone-vatid-validation-modules/</link>
      <pubDate>Sun, 03 Aug 2025 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/magento2-phone-vatid-validation-modules/</guid>
      <description>&lt;h1 id=&#34;-boost-your-magento-2-store-with-free-phone--vat-id-validation-modules&#34;&gt;🛡️ Boost Your Magento 2 Store with Free Phone &amp;amp; VAT ID Validation Modules&lt;/h1&gt;&#xA;&lt;p&gt;Magento 2 allows almost anything in checkout fields — and that’s a problem.&lt;/p&gt;&#xA;&lt;p&gt;Bad phone numbers or invalid VAT IDs can break shipping labels, invoicing, or even tax logic. To fix this, I built and released two free and lightweight validation modules that you can drop into any Magento 2 store.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;-phone-number-validation&#34;&gt;📞 Phone Number Validation&lt;/h2&gt;&#xA;&lt;p&gt;Out of the box, Magento doesn’t validate phone numbers beyond “not empty.”&lt;/p&gt;</description>
    </item>
    <item>
      <title>Achieve Your Goals Faster with Clearer Tasks</title>
      <link>https://stafura.dev/achieve-your-goals-faster-with-clearer-tasks/</link>
      <pubDate>Mon, 10 Feb 2025 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/achieve-your-goals-faster-with-clearer-tasks/</guid>
      <description>&lt;p&gt;Some people need no plans. And some people DO.&lt;/p&gt;&#xA;&lt;p&gt;But what good are plans if we do not accomplish them?&lt;/p&gt;&#xA;&lt;p&gt;Over the years, through constant practice and failure, I have developed a system that has helped me achieve in a month what previously took me years. Here are some key insights to help you improve instantly and accomplish your goals as efficiently as an assembly line.&lt;/p&gt;&#xA;&lt;h2 id=&#34;log-your-goals-and-tasks&#34;&gt;Log your goals and tasks&lt;/h2&gt;&#xA;&lt;p&gt;One of the most important things is to write them down to track, analyze, remind, and motivate yourself.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Limiting resources with ulimit in Linux</title>
      <link>https://stafura.dev/limiting-processes-with-ulimit-in-linux/</link>
      <pubDate>Mon, 03 Feb 2025 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/limiting-processes-with-ulimit-in-linux/</guid>
      <description>&lt;h3 id=&#34;what-is-ulimit&#34;&gt;What is ulimit&lt;/h3&gt;&#xA;&lt;p&gt;&lt;code&gt;ulimit&lt;/code&gt; is a builtin shell command that allows us to restrict system resources, for example the number of processes, number of open files, maximum logins.&lt;/p&gt;&#xA;&lt;h3 id=&#34;display-the-limits&#34;&gt;Display the limits&lt;/h3&gt;&#xA;&lt;p&gt;The see the current resource limits for the logged-in user, run:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8be9fd;font-style:italic&#34;&gt;ulimit&lt;/span&gt; -a&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;example-output&#34;&gt;Example Output&lt;/h4&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-t: cpu &lt;span style=&#34;color:#8be9fd;font-style:italic&#34;&gt;time&lt;/span&gt; &lt;span style=&#34;color:#ff79c6&#34;&gt;(&lt;/span&gt;seconds&lt;span style=&#34;color:#ff79c6&#34;&gt;)&lt;/span&gt;              unlimited&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-f: file size &lt;span style=&#34;color:#ff79c6&#34;&gt;(&lt;/span&gt;blocks&lt;span style=&#34;color:#ff79c6&#34;&gt;)&lt;/span&gt;              unlimited&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-d: data seg size &lt;span style=&#34;color:#ff79c6&#34;&gt;(&lt;/span&gt;kbytes&lt;span style=&#34;color:#ff79c6&#34;&gt;)&lt;/span&gt;          unlimited&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-s: stack size &lt;span style=&#34;color:#ff79c6&#34;&gt;(&lt;/span&gt;kbytes&lt;span style=&#34;color:#ff79c6&#34;&gt;)&lt;/span&gt;             &lt;span style=&#34;color:#bd93f9&#34;&gt;8192&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-c: core file size &lt;span style=&#34;color:#ff79c6&#34;&gt;(&lt;/span&gt;blocks&lt;span style=&#34;color:#ff79c6&#34;&gt;)&lt;/span&gt;         &lt;span style=&#34;color:#bd93f9&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-m: resident &lt;span style=&#34;color:#8be9fd;font-style:italic&#34;&gt;set&lt;/span&gt; size &lt;span style=&#34;color:#ff79c6&#34;&gt;(&lt;/span&gt;kbytes&lt;span style=&#34;color:#ff79c6&#34;&gt;)&lt;/span&gt;      unlimited&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-u: processes                       &lt;span style=&#34;color:#bd93f9&#34;&gt;22678&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-n: file descriptors                &lt;span style=&#34;color:#bd93f9&#34;&gt;2048&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-l: locked-in-memory size &lt;span style=&#34;color:#ff79c6&#34;&gt;(&lt;/span&gt;kbytes&lt;span style=&#34;color:#ff79c6&#34;&gt;)&lt;/span&gt;  &lt;span style=&#34;color:#bd93f9&#34;&gt;735404&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-v: address space &lt;span style=&#34;color:#ff79c6&#34;&gt;(&lt;/span&gt;kbytes&lt;span style=&#34;color:#ff79c6&#34;&gt;)&lt;/span&gt;          unlimited&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-x: file locks                      unlimited&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-i: pending signals                 &lt;span style=&#34;color:#bd93f9&#34;&gt;22678&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-q: bytes in POSIX msg queues       &lt;span style=&#34;color:#bd93f9&#34;&gt;819200&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-e: max nice                        &lt;span style=&#34;color:#bd93f9&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-r: max rt priority                 &lt;span style=&#34;color:#bd93f9&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-N 15:                              unlimited&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;setting-resource-limits&#34;&gt;Setting resource limits&lt;/h3&gt;&#xA;&lt;p&gt;If you want to limit the number of processes for a user&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Calibrate the Milwaukee pH600 pH Meter</title>
      <link>https://stafura.dev/how-to-calibrate-the-milwaukee-ph600-ph-meter/</link>
      <pubDate>Thu, 30 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/how-to-calibrate-the-milwaukee-ph600-ph-meter/</guid>
      <description>&lt;p&gt;I recently purchased a Milwaukee pH600 pH meter for my microgreens project, and I want to share a quick and easy guide on how to calibrate it. Proper calibration ensures accurate readings, which are crucial for the health and growth of your microgreens.&lt;/p&gt;&#xA;&lt;p&gt;What you&amp;rsquo;ll need:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Milwaukee pH600&lt;/li&gt;&#xA;&lt;li&gt;Calibration solution MA9007&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;calibration-steps&#34;&gt;Calibration Steps:&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Turn on the pH meter by switching the ON/OFF button.&lt;/li&gt;&#xA;&lt;li&gt;Remove the protective cap.&lt;/li&gt;&#xA;&lt;li&gt;Immerse the electrode in the pH 7.01 calibration solution (MA9007) and wait for the reading to stabilize.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&#xA;&#xA;&#xA;&lt;picture&gt;&#xA;    &#xA;      &#xA;&#xA;      &#xA;&#xA;      &#xA;      &#xA;&#xA;      &lt;source srcset=&#34;https://stafura.dev/images/blog/how-to-calibrate-the-milwaukee-ph600-ph-meter/ph600-calibration-1.webp&#34; type=&#34;image/webp&#34;&gt;&#xA;&#xA;    &#xA;&#xA;    &#xA;&#xA;    &lt;img&#xA;      src=&#34;https://stafura.dev/images/blog/how-to-calibrate-the-milwaukee-ph600-ph-meter/ph600-calibration-1.jpg&#34;&#xA;      alt=&#34;Milwaukee pH600 meter display reading 6.9 while immersed in pH 7.01 calibration solution&#34;&#xA;      loading=&#34;lazy&#34;&#xA;      decoding=&#34;async&#34;&#xA;      width=&#34;1200&#34;&#xA;      height=&#34;1600&#34;&#xA;    /&gt;&#xA;&#xA;    &#xA;  &lt;/picture&gt;&#xA;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>6 Timeless Marketing Tips from Gary Halbert to Boost Your Business</title>
      <link>https://stafura.dev/6-timeless-marketing-tips-from-gary-halbert-to-boost-your-business/</link>
      <pubDate>Mon, 27 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/6-timeless-marketing-tips-from-gary-halbert-to-boost-your-business/</guid>
      <description>&lt;p&gt;Gary Halbert was one of the greatest copywriters, often called the &amp;ldquo;Prince of Print.&amp;rdquo; His curiosity and hard work allowed him to accumulate invaluable knowledge about what truly works in marketing and sales.&lt;/p&gt;&#xA;&lt;p&gt;Here are my favorite tips from him:&lt;/p&gt;&#xA;&lt;h3 id=&#34;1-psychology-is-10000-times-more-important-than-technology&#34;&gt;1. Psychology Is 10,000 Times More Important Than Technology&lt;/h3&gt;&#xA;&lt;p&gt;Your product may be a masterpiece of pure genius, designed to help countless people. You might invest heavily in descriptions, high-quality images, and videos, yet still struggle to make sales.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Install and Configure Redis on a Separate DigitalOcean Droplet for Magento</title>
      <link>https://stafura.dev/how-to-install-and-configure-redis-on-a-separate-digitalocean-droplet-for-magento/</link>
      <pubDate>Thu, 23 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/how-to-install-and-configure-redis-on-a-separate-digitalocean-droplet-for-magento/</guid>
      <description>&lt;p&gt;Install redis on separate droplet to offload Redis from the Magento monolith.&lt;/p&gt;&#xA;&lt;h3 id=&#34;create-a-droplet-for-redis&#34;&gt;Create a Droplet for Redis&lt;/h3&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s create a droplet for Redis in DigitalOcean (DO from now on).&lt;/p&gt;&#xA;&lt;p&gt;I chose the following minimal parameters (you can scale later):&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Basic Droplet&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Premium AMD&lt;/strong&gt;: 1GB RAM, 25GB NVMe SSD, 1000GB transfer.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;IMPORTANT: Make sure the new droplet is within the same VPC and Region as your Magento server.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;redis-installation&#34;&gt;Redis installation&lt;/h3&gt;&#xA;&lt;p&gt;Once the droplet is successfully created, SSH into the droplet and install Redis:&lt;/p&gt;</description>
    </item>
    <item>
      <title>My first homelab</title>
      <link>https://stafura.dev/my-first-homelab/</link>
      <pubDate>Mon, 20 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/my-first-homelab/</guid>
      <description>&lt;p&gt;Finally, I found the time to set up my first homelab. To get hands-on experience with advanced Linux topics, virtualization, and Kubernetes, I needed a dedicated server. The truth is, you don’t need anything fancy—an old laptop can work just fine. I opted for a mini version since I might need to carry it to different locations.&lt;/p&gt;&#xA;&lt;h3 id=&#34;specs&#34;&gt;Specs&lt;/h3&gt;&#xA;&lt;p&gt;Let me introduce the HP EliteDesk 800 i5-6500T. It&amp;rsquo;s second-hand but in excellent condition.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to download torrents with transmission and docker</title>
      <link>https://stafura.dev/how-to-download-torrents-with-transmission-and-docker/</link>
      <pubDate>Mon, 13 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/how-to-download-torrents-with-transmission-and-docker/</guid>
      <description>&lt;p&gt;Since I set up &lt;a href=&#34;https://stafura.dev/my-first-homelab/&#34;&gt;my new homelab&lt;/a&gt;, I wanted to separate processes that could run independently on another PC. One of those processes is downloading torrents, which previously required my PC to be running and consumed valuable space.&lt;/p&gt;&#xA;&lt;h3 id=&#34;requirements&#34;&gt;Requirements&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;docker installed&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;&#xA;&lt;p&gt;Create a file named &lt;code&gt;docker-compose.yaml&lt;/code&gt; and add the following content:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;---&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff79c6&#34;&gt;services&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#ff79c6&#34;&gt;transmission&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ff79c6&#34;&gt;image&lt;/span&gt;: lscr.io/linuxserver/transmission:latest&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ff79c6&#34;&gt;container_name&lt;/span&gt;: transmission&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ff79c6&#34;&gt;environment&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - PUID=1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - PGID=1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - TZ=Etc/UTC&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ff79c6&#34;&gt;volumes&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - ./config:/config&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - ./downloads:/downloads&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - ./watch:/watch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ff79c6&#34;&gt;ports&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#bd93f9&#34;&gt;9091&lt;/span&gt;:&lt;span style=&#34;color:#bd93f9&#34;&gt;9091&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#bd93f9&#34;&gt;51413&lt;/span&gt;:&lt;span style=&#34;color:#bd93f9&#34;&gt;51413&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#bd93f9&#34;&gt;51413&lt;/span&gt;:&lt;span style=&#34;color:#bd93f9&#34;&gt;51413&lt;/span&gt;/udp&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ff79c6&#34;&gt;restart&lt;/span&gt;: unless-stopped&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;running-transmission&#34;&gt;Running transmission&lt;/h3&gt;&#xA;&lt;p&gt;While in the folder containing the &lt;code&gt;docker-compose.yaml&lt;/code&gt; file, start the container. The volumes will be automatically created.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A Dangerous but Effective Strategy for Achieving Your Goals</title>
      <link>https://stafura.dev/a-dangerous-but-effective-strategy-for-achieving-your-goals/</link>
      <pubDate>Mon, 06 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/a-dangerous-but-effective-strategy-for-achieving-your-goals/</guid>
      <description>&lt;p&gt;Years ago, I read an interesting story about Fyodor Dostoyevsky. In the book &lt;em&gt;&amp;ldquo;The 33 Strategies of War&amp;rdquo;&lt;/em&gt;, author Robert Greene describes how Dostoyevsky narrowly escaped execution in prison, only to become one of the most important writers of all time.&lt;/p&gt;&#xA;&lt;p&gt;Once released, writing and publishing became Dostoyevsky&amp;rsquo;s top priorities. However, at home, he was constantly bombarded by distractions. Remembering the fragility of life in prison and the moment he was nearly executed, he came up with a extreme solution: he gambled away all his money. This forced him to focus entirely on writing, as he needed to survive through his work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Plant the seeds today</title>
      <link>https://stafura.dev/plant-the-seeds-today/</link>
      <pubDate>Mon, 30 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/plant-the-seeds-today/</guid>
      <description>&lt;p&gt;Another year has passed, and it&amp;rsquo;s time for reflection. This year was far better than the one before—not because of what I did in recent months, but because of the work I put in years ago. I&amp;rsquo;m talking about seeds that grow on their own, even while I sleep. Far from perfect, but nurtured over time, they’ve transformed into plants and trees.&lt;/p&gt;&#xA;&lt;p&gt;The problem with having a job is that you only get paid for the hours you work.&lt;br&gt;&#xA;Your earnings are limited to your active time. And what happens if you lose your job tomorrow? Cultivating your own &amp;ldquo;garden&amp;rdquo; is essential. If you neglect it, nothing meaningful will grow. But if you take the time to clear out the weeds and plant tiny seeds, you’ll eventually enjoy not just the fruit they bear, but also the knowledge, discipline, and independence they bring.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why Should You Become a Master</title>
      <link>https://stafura.dev/why-should-you-become-a-master/</link>
      <pubDate>Mon, 23 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/why-should-you-become-a-master/</guid>
      <description>&lt;p&gt;While mastery can apply to any profession, in this post I will focus on its significance in programming and development.&lt;/p&gt;&#xA;&lt;p&gt;Becoming the best version of yourself isn’t easy. However, the key consideration is this: if you’re willing to invest several years of your life in learning to become a master, the knowledge and rewards you gain will benefit you for the rest of your life.&lt;/p&gt;&#xA;&lt;p&gt;Mastery isn’t just about sitting endless hours in front of a computer. It affects every aspect of your life—discipline, health, communication, and more.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to install man pages on an ubuntu docker image</title>
      <link>https://stafura.dev/how-to-install-man-pages-on-an-ubuntu-docker-image/</link>
      <pubDate>Thu, 19 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/how-to-install-man-pages-on-an-ubuntu-docker-image/</guid>
      <description>&lt;p&gt;As I am preparing for a Linux exam, I need to practice various commands on a separate Docker image and refer to manuals while using it.&lt;/p&gt;&#xA;&lt;p&gt;By default, Docker images are minimal, and the Ubuntu image does not include &lt;code&gt;man&lt;/code&gt; pages.&lt;/p&gt;&#xA;&lt;p&gt;For instance, when you try to access a manual page, you encounter the following message:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;root@54354b49f7a9:/# man man&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;This system has been minimized by removing packages and content that are&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;not required on a system that users &lt;span style=&#34;color:#ff79c6&#34;&gt;do&lt;/span&gt; not log into.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;To restore this content, including manpages, you can run the &lt;span style=&#34;color:#f1fa8c&#34;&gt;&amp;#39;unminimize&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;command. You will still need to ensure the &lt;span style=&#34;color:#f1fa8c&#34;&gt;&amp;#39;man-db&amp;#39;&lt;/span&gt; package is installed.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To address this, you can use the &lt;code&gt;unminimize&lt;/code&gt; command in the Dockerfile to restore the missing components. Here&amp;rsquo;s how:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why I began writing</title>
      <link>https://stafura.dev/why-i-began-writing/</link>
      <pubDate>Mon, 16 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/why-i-began-writing/</guid>
      <description>&lt;p&gt;I write mostly for myself, but if you find my articles helpful, I’m happy to hear that.&lt;/p&gt;&#xA;&lt;p&gt;Since I am a huge fan of pragmatism, I have reasons to &amp;ldquo;waste&amp;rdquo; my life with writing. Being able to express your thoughts, defend yourself, and share wisdom ranks among the top skills one should improve upon.&lt;/p&gt;&#xA;&lt;p&gt;Here are my top reasons:&lt;/p&gt;&#xA;&lt;h2 id=&#34;it-is-hard&#34;&gt;It is hard&lt;/h2&gt;&#xA;&lt;p&gt;If you want to get better, you need to do the hard things. This applies not just to writing but to life in general.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The One Magic Word That Helps You Learn Anything (especially the hard stuff)</title>
      <link>https://stafura.dev/the-one-magic-word-that-helps-you-learn-anything-especially-the-hard-stuff/</link>
      <pubDate>Mon, 09 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/the-one-magic-word-that-helps-you-learn-anything-especially-the-hard-stuff/</guid>
      <description>&lt;p&gt;I believe everyone in the world can learn complex things.&lt;/p&gt;&#xA;&lt;p&gt;At first, learning any skill can feel challenging (even though the perception of difficulty is subjective). We have to process a lot of information, perform the new skill, and apply it in appropriate situations. There’s also immediate feedback we need to recognize and adapt to.&lt;/p&gt;&#xA;&lt;p&gt;As children, we learned many important things simply because we were pushed. Authorities like parents and teachers urged us to act, showing us what to do and encouraging us to repeat the same actions until we could replicate the results (or something acceptable). This applied to everything we learned, from walking to solving math problems.&lt;/p&gt;</description>
    </item>
    <item>
      <title>On being prepared</title>
      <link>https://stafura.dev/on-being-prepared/</link>
      <pubDate>Mon, 02 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/on-being-prepared/</guid>
      <description>&lt;p&gt;The actress Toni Collette remarked in an interview that director Ari Aster was &lt;strong&gt;the most prepared director she had ever worked with&lt;/strong&gt;. Aster had visualized the entire movie &lt;em&gt;Hereditary&lt;/em&gt; in his mind, down to the smallest detail, two years before filming began.&lt;/p&gt;&#xA;&lt;p&gt;The first time I encountered this concept was with another legendary director, Alfred Hitchcock. Hitchcock meticulously visualized scenes, shots, lighting, sets, and design to such an extent that filming became a mere technical execution of his preplanned vision.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to encrypt and decrypt files with AES-256 with OpenSSL</title>
      <link>https://stafura.dev/how-to-encrypt-and-decrypt-files-with-aes-256-with-openssl/</link>
      <pubDate>Thu, 28 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/how-to-encrypt-and-decrypt-files-with-aes-256-with-openssl/</guid>
      <description>&lt;p&gt;The worst nightmare is sending and storing sensitive or private data in plain text.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s improve that by encrypting the files with AES-256.&lt;/p&gt;&#xA;&lt;h2 id=&#34;install-openssl&#34;&gt;Install OpenSSL&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6272a4&#34;&gt;# Let&amp;#39;s check if we have OpenSSL installed&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;openssl version&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6272a4&#34;&gt;# If not, let&amp;#39;s install openssl&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt update &lt;span style=&#34;color:#ff79c6&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt install openssl -y&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;encrypt-file&#34;&gt;Encrypt File&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6272a4&#34;&gt;# create a file with some content&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8be9fd;font-style:italic&#34;&gt;echo&lt;/span&gt; &lt;span style=&#34;color:#f1fa8c&#34;&gt;&amp;#34;hello&amp;#34;&lt;/span&gt; &amp;gt; test.txt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6272a4&#34;&gt;# Encrypt the file&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;openssl enc -aes-256-cbc -salt -pbkdf2 -iter &lt;span style=&#34;color:#bd93f9&#34;&gt;100000&lt;/span&gt; -in test.txt -out example.enc&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6272a4&#34;&gt;#### help ################################################################&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6272a4&#34;&gt;# -salt     - Ensures that the same plaintext encrypted multiple &lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6272a4&#34;&gt;#             times with the same key produces different ciphertexts&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6272a4&#34;&gt;# -pbkdf2   - Password-Based Key Derivation Function 2 &lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6272a4&#34;&gt;#             algorithm used to derive the encryption key from a password&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6272a4&#34;&gt;# -iter     - Specifies the number of iterations for the algorithm&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6272a4&#34;&gt;##########################################################################&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6272a4&#34;&gt;# check if we have encrypted file&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ls&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6272a4&#34;&gt;# test.txt example.enc&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6272a4&#34;&gt;# let&amp;#39;s see the contents of encrypted file&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cat example.enc&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6272a4&#34;&gt;# Salted__�!ei��/�+�΀O��l3%&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Yay, no one can read that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Before you do great things, do small things first</title>
      <link>https://stafura.dev/before-you-do-great-things-do-small-things-first/</link>
      <pubDate>Mon, 25 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/before-you-do-great-things-do-small-things-first/</guid>
      <description>&lt;p&gt;&lt;strong&gt;&amp;ldquo;Big things have small beginnings.&amp;rdquo;&lt;/strong&gt;&lt;br&gt;&#xA;— &lt;em&gt;Lawrence of Arabia&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;When Quentin Tarantino became famous, he was asked how he made his first movie, which turned out to be an instant classic and international hit.&lt;/p&gt;&#xA;&lt;p&gt;He explained that &lt;em&gt;Reservoir Dogs&lt;/em&gt; was not actually his first film.&lt;/p&gt;&#xA;&lt;p&gt;Before that, he made a short movie (&lt;em&gt;My Best Friend&amp;rsquo;s Birthday&lt;/em&gt;), which wasn’t great. However,&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;hellip; it gave him experience with every stage of the filmmaking process.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Every Action Starts in the Mind</title>
      <link>https://stafura.dev/every-action-starts-in-the-mind/</link>
      <pubDate>Mon, 18 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/every-action-starts-in-the-mind/</guid>
      <description>&lt;p&gt;In elementary school, during a Biology class, the teacher was explaining the nervous system. I remember this vividly because she said and demonstrated something that has stuck with me to this day, profoundly changing how I think and act.&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;When you move your hand,&amp;rdquo; she said, moving her hand in random directions, &amp;ldquo;the movement starts as information in your mind first.&amp;rdquo;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Every movement of your body is the result of a thought process that begins in your mind.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why you should never try</title>
      <link>https://stafura.dev/why-you-should-never-try/</link>
      <pubDate>Mon, 11 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/why-you-should-never-try/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Don&amp;rsquo;t try. &amp;ndash; Charles Bukowski&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Years ago, I read about a lecture given by a professional therapist to a group of students.[1] During the session, while interacting with the audience, the therapist he noticed one of students expressing willingness to try something. But it did not work. In other words the student&amp;rsquo;s attempt never materialized into action.&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;Come here. I want to show you something,&amp;rdquo; therapist said. The student approached the stage and sat down.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Write the Ultimate Online Article: Key Elements to Master</title>
      <link>https://stafura.dev/how-to-write-online-article/</link>
      <pubDate>Sun, 21 May 2023 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/how-to-write-online-article/</guid>
      <description>&lt;p&gt;Here are some tips to improve your article to attract audience, return readers, improve ranking and increase your reputation.&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&#xA;&#xA;&lt;picture&gt;&#xA;    &#xA;      &#xA;&#xA;      &#xA;&#xA;      &#xA;      &#xA;&#xA;      &lt;source srcset=&#34;https://stafura.dev/images/blog/writing4.webp&#34; type=&#34;image/webp&#34;&gt;&#xA;&#xA;    &#xA;&#xA;    &#xA;&#xA;    &lt;img&#xA;      src=&#34;https://stafura.dev/images/blog/writing4.jpg&#34;&#xA;      alt=&#34;writing article&#34;&#xA;      loading=&#34;lazy&#34;&#xA;      decoding=&#34;async&#34;&#xA;      width=&#34;840&#34;&#xA;      height=&#34;473&#34;&#xA;    /&gt;&#xA;&#xA;    &#xA;  &lt;/picture&gt;&#xA;&#xA;&lt;/p&gt;&#xA;&lt;h2 id=&#34;write-for-human-beings&#34;&gt;Write for Human Beings&lt;/h2&gt;&#xA;&lt;p&gt;One of the most important Google metrics to rank is the duration of the visit.&lt;/p&gt;&#xA;&lt;p&gt;Why?&lt;/p&gt;&#xA;&lt;p&gt;Having an article written purely for keywords misses the important human touch, thus resulting in readers quickly bouncing away and unlikely to return.&lt;/p&gt;&#xA;&lt;p&gt;A high bounce rate indicates that the article may not be useful, interesting, or written for people.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The dangers of paid advertising</title>
      <link>https://stafura.dev/dangers-of-paid-advertising/</link>
      <pubDate>Tue, 07 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/dangers-of-paid-advertising/</guid>
      <description>&lt;p&gt;Guessing is expensive. A lot.&lt;/p&gt;&#xA;&lt;p&gt;Anybody inexperienced in making sales chooses the easiest (and most costly) way to promote - paid advertising. Immediate exposure brings you potential customers and revenue almost instantly. But, as time goes by, these ads are less and less effective and more expensive. The reasons are countless. Ads are repetitively shown to the same audience, blocking software, irrelevant ad placement, inflated cost, competition, distrust in ads, overall fog everywhere, and so on.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Consider implementing assembly line in your business</title>
      <link>https://stafura.dev/consider-implementing-assembly-line-in-your-business/</link>
      <pubDate>Mon, 23 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/consider-implementing-assembly-line-in-your-business/</guid>
      <description>&lt;p&gt;In the early 20th century, it took several weeks or months to produce a single car by hand. Workers performed multiple tasks that were dependent on each other, and the production of the parts of the vehicle was often of inconsistent quality. They also had to share the same space, often colliding while moving parts in a single room or performing individual tasks. Everyone could do anything, but little was accomplished on a daily basis. The process was terribly slow.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why would you make your life hard</title>
      <link>https://stafura.dev/why-would-you-make-your-life-hard/</link>
      <pubDate>Mon, 16 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/why-would-you-make-your-life-hard/</guid>
      <description>&lt;p&gt;Every business craves more sales. By looking for more customers, collaborating with new distributors, and adding fresh products or services to their portfolio. However, every action taken poses a risk and the potential to make things worse. Poorly thought out decisions or being blinded by the desire for profit can lead to ignoring or tolerating negative consequences. Increase the chance of success, not only by proper planning but also by avoiding making mistakes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>About customers who can&#39;t reach you</title>
      <link>https://stafura.dev/about-customers-who-cant-reach-you/</link>
      <pubDate>Mon, 09 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/about-customers-who-cant-reach-you/</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;INTRODUCTION&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Even if you have a worldwide, well-known company recognized by millions, there will always be a part of the population (potential customers) who are totally unaware of your existence. Increase the probability of sales by merely opening new doors to potential customers.&#xA;Successful companies make sure that people know about them from every possible angle - you can see or hear (even smell) them everywhere in various forms. And don&amp;rsquo;t allow yourself to be misled by the idea that just because your business operates online, you can be found by everyone.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Know when to end a project</title>
      <link>https://stafura.dev/know-when-to-end-a-project/</link>
      <pubDate>Mon, 02 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/know-when-to-end-a-project/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Nothing happens to the wise man against his expectation. — Seneca&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;projects-are-interconnected-tasks&#34;&gt;Projects are interconnected tasks&lt;/h2&gt;&#xA;&lt;p&gt;Every business has its own projects that are split into smaller, specific, manageable tasks. Each of these tasks has its own importance, urgency, and purpose - once completed, it brings us closer to completing the larger task and, ultimately, the project. These tasks share resources: business, budget, infrastructure. Failing to close a project when it should means it keeps draining those resources.&lt;/p&gt;</description>
    </item>
    <item>
      <title>About me</title>
      <link>https://stafura.dev/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/about/</guid>
      <description>&lt;h2 id=&#34;about&#34;&gt;About&lt;/h2&gt;&#xA;&lt;img src=&#34;https://stafura.dev/images/profile.jpg&#34; alt=&#34;Matus Stafura&#34; class=&#34;about-avatar&#34;&gt;&#xA;&lt;p&gt;Hello! I&amp;rsquo;m a developer and strategist from Slovakia. Most of my time is spent at Megamix of which I&amp;rsquo;m the co-owner.&lt;/p&gt;&#xA;&lt;p&gt;Over the past 15 years, I&amp;rsquo;ve helped numerous companies increase their traffic, optimize software, and improve programming, resulting in enhanced brand awareness and significant growth in revenue.&lt;/p&gt;&#xA;&lt;p&gt;In addition to my work, I enjoy writing articles on software development and marketing on &lt;a href=&#34;https://dev.to/matusstafura&#34;&gt;https://dev.to/matusstafura&lt;/a&gt;, sharing my knowledge and insights with a wider audience.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Portfolio</title>
      <link>https://stafura.dev/portfolio/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://stafura.dev/portfolio/</guid>
      <description>&lt;h2 id=&#34;various-projects&#34;&gt;Various Projects&lt;/h2&gt;&#xA;&lt;h3 id=&#34;anki-deck-to-csv-converter&#34;&gt;Anki deck to CSV converter.&lt;/h3&gt;&#xA;&lt;p&gt;Converts Anki decks to CSV format for easier data manipulation and analysis. Written in Python, this tool is useful for educators and students who want to export their Anki flashcards into a more accessible format.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/matusstafura/apkg2csv&#34;&gt;https://github.com/matusstafura/apkg2csv&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;magento-2-vat-id-validation&#34;&gt;Magento 2 VAT ID Validation&lt;/h3&gt;&#xA;&lt;p&gt;A lightweight module that adds client-side VAT ID validation to key Magento 2 forms like checkout and customer address forms. This is helpful for EU country based commerce, that needs to verify VAT ID via VIES.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
