<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>paulefou site</title><link>https://paulefou.com/</link><description>Recent content on paulefou site</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 27 Dec 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://paulefou.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Rust Traits Design Trade-offs</title><link>https://paulefou.com/blog/traits-design-trade-offs/</link><pubDate>Sat, 27 Dec 2025 00:00:00 +0000</pubDate><guid>https://paulefou.com/blog/traits-design-trade-offs/</guid><description>&lt;p&gt;I&amp;rsquo;ve spent roughly 4 hours in one sitting trying to figure out &lt;a href="https://rust-book.cs.brown.edu/ch18-05-design-challenge.html#trait-trees"&gt;this quiz&lt;/a&gt;, making all those notes, and I figured that it might make sense to publish them, since I already have them.&lt;/p&gt;
&lt;h1 id="question-1"&gt;Question 1&lt;/h1&gt;
&lt;p&gt;Requirement: The API client is expected to provide a single WidgetImpl enum
representing all possible widgets, and implement the Widget trait for WidgetImpl.&lt;/p&gt;
&lt;h1 id="question-2"&gt;Question 2&lt;/h1&gt;
&lt;p&gt;Requirement: The API client is expected to provide a unique struct for each possible widget,
and implement the Widget trait for each struct. Each widget can return a vector containing
widgets of any possible type.&lt;/p&gt;</description></item><item><title>Pass: The Standard Unix Password Manager - (Convenient Open Source)</title><link>https://paulefou.com/blog/pass-standard-unix-password-manager/</link><pubDate>Sun, 08 Jun 2025 00:00:00 +0000</pubDate><guid>https://paulefou.com/blog/pass-standard-unix-password-manager/</guid><description>&lt;p&gt;This is mostly a note to myself for the future, but I hope this might be helpful for someone who wants to have an extremely convenient, configurable, yet free and open source password manager.
Let&amp;rsquo;s first have a look at what we want our password manager to be able to do:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Automatically fill in the passwords in Firefox and Chromium&lt;/li&gt;
&lt;li&gt;Automatically fill in the OTP in Firefox and Chromium&lt;/li&gt;
&lt;li&gt;Copy to clipboard any password in under 5 key presses on a keyboard&lt;/li&gt;
&lt;li&gt;Copy to clipboard any OTP in under 5 key presses on a keyboard&lt;/li&gt;
&lt;li&gt;Fill the password from your iPhone&lt;/li&gt;
&lt;li&gt;Sync the passwords across all your browsers, phones, laptops, etc.&lt;/li&gt;
&lt;li&gt;Add the new OTP to your store without your phone and with just 2 commands&lt;/li&gt;
&lt;li&gt;Generate a new password&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And we can do all of that with pass &amp;ndash; the standard Unix password manager.&lt;/p&gt;</description></item><item><title>About</title><link>https://paulefou.com/about/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://paulefou.com/about/</guid><description>&lt;h1 id="hi-im-pavel-"&gt;Hi, I&amp;rsquo;m Pavel 👋&lt;/h1&gt;
&lt;p&gt;I’m a software engineer from Ukraine living in Thailand. I love building efficient systems, staying productive, and every now and then hitting heavy lifts at CrossFit.&lt;/p&gt;
&lt;h2 id="what-i-do"&gt;What I Do&lt;/h2&gt;
&lt;p&gt;I write about my experiences with technology, productivity systems, and the occasional frustration with modern tech platforms. My goal is to share what I&amp;rsquo;ve learned so later when I run into the same issues I could look it up again and hopefully help others avoid the same pitfalls.&lt;/p&gt;</description></item><item><title>Explain to me postgresql EXPLAIN please</title><link>https://paulefou.com/blog/explain-explain/</link><pubDate>Thu, 15 Dec 2022 00:00:00 +0000</pubDate><guid>https://paulefou.com/blog/explain-explain/</guid><description>&lt;p&gt;Yesterday I was looking at the query that took around 25 seconds to execute on our prod read replica. I ran explain anaylyze to see what can be the issue and what can be done immediately as this is something that constantly timeouts on a production. Here’s the part of the explain graph that I was looking at the most:&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;
 &lt;img src="https://paulefou.com/explain.png" alt="Explain that shows what is the problem" /&gt;
&lt;/figure&gt;


&lt;/p&gt;
&lt;p&gt;From this graph I could imagine that the biggest problem here is the gather merge, then hash join. But no immediate actions could be done to those, at least as far as I can understand. I figure, I’d at least fix the sorting, even though it’s not super important.&lt;/p&gt;</description></item><item><title>I Dont Like Lambdas</title><link>https://paulefou.com/blog/i-dont-like-lambdas/</link><pubDate>Sat, 04 Jun 2022 00:00:00 +0000</pubDate><guid>https://paulefou.com/blog/i-dont-like-lambdas/</guid><description>&lt;h3 id="dependencies"&gt;Dependencies&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[ERROR] Runtime.ImportModuleError: Unable to import module &amp;#39;app.main&amp;#39;: 
libc.musl-x86_64.so.1: cannot open shared object file:
No such file or directory
Traceback (most recent call last):
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;That is a complete log that you can see once you deployed your python app. If you google this the answer will be as the first entry in amazon &lt;a href="https://aws.amazon.com/premiumsupport/knowledge-center/lambda-import-module-error-python/"&gt;docs&lt;/a&gt;. The more you read, the more insane it’s sounds to me.&lt;/p&gt;
&lt;p&gt;To fix this problem they suggest 9 steps, which include creating a EC2 instance with the same operating system that your lambda runs on, which is famously known and run by pretty much every computer Amazon Linux 2 AMI or the Amazon Linux AMI. (no joke)&lt;/p&gt;</description></item><item><title>Fighting bad internet habits with ancient long forgotten weapons</title><link>https://paulefou.com/blog/fight-bad-internet-habits-rss/</link><pubDate>Sun, 18 Apr 2021 00:00:00 +0000</pubDate><guid>https://paulefou.com/blog/fight-bad-internet-habits-rss/</guid><description>&lt;h3 id="you-will-not-have-to-go-to-the-youtube-website-ever-unless-you-deliberately-want-to-search-for-something"&gt;You will not have to go to the youtube website ever unless you deliberately want to search for something&lt;/h3&gt;
&lt;p&gt;The problems:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I’m spending too much time on youtube&lt;/li&gt;
&lt;li&gt;I’m watching too many videos I didn’t want to watch&lt;/li&gt;
&lt;li&gt;Sometimes I pretend that I’m learning by watching fairly low-level educational content that much more entertaining than educational. Better alternatives exist.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;People are generally terrible at estimating how much time do they have and how much is spent on what activities. One of the rules of getting rid of bad habits is: &amp;ldquo;Make it invisible&amp;rdquo;.&lt;/p&gt;</description></item><item><title>How I live my life to stay productive</title><link>https://paulefou.com/blog/how-i-live-my-life-to-stay-productive/</link><pubDate>Sat, 13 Mar 2021 00:00:00 +0000</pubDate><guid>https://paulefou.com/blog/how-i-live-my-life-to-stay-productive/</guid><description>&lt;blockquote&gt;
&lt;p&gt;If you’re a writer — write. If you’re a software engineer — code.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Here’s a quick overview of what I do to stay productive and healthy in a tldr format for everyone who knows the terms and I’ll go into detail over every entry later in the article&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Early get up&lt;/li&gt;
&lt;li&gt;Four hours a day of long concentration on the most challenging tasks with time blocking (Deep Work)&lt;/li&gt;
&lt;li&gt;Intermittent fasting (18/6, 20/4)&lt;/li&gt;
&lt;li&gt;Daily exercise&lt;/li&gt;
&lt;li&gt;Cold showers&lt;/li&gt;
&lt;li&gt;Low carb diet&lt;/li&gt;
&lt;li&gt;No social networks&lt;/li&gt;
&lt;li&gt;No notifications&lt;/li&gt;
&lt;li&gt;No porn&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now that we are done with that, I’d like to say why am I writing this. By no means I am a guru or business coach or highly successful entrepreneur (yet).&lt;/p&gt;</description></item></channel></rss>