Dmitry DolzhenkoDmitry Dolzhenko's personal websitehttps://dolzhenko.me/favicon.ico2026-02-09T20:30:00Zhttps://dolzhenko.me/Dmitry Dolzhenko[email protected]Default Apps2023-11-07T00:00:00Zhttps://dolzhenko.me/blog/2023/11/default-apps/<p>What is the best way to restart a blog if not by joining a recent trend in blogosphere for fun.</p>
<p>I first saw this on <a href="https://kevquirk.com/my-default-apps-at-the-end-of-2023">Kev Quirk's blog</a>, but it all started with <a href="https://listen.hemisphericviews.com/097">"Duel of the Defaults!"</a> episode of <a href="https://listen.hemisphericviews.com/">Hemispheric Views</a> podcast:</p>
<iframe src="https://player.fireside.fm/v2/6MInpziV+pRrVuoJB?theme=dark" width="740" height="200" frameborder="0" scrolling="no"></iframe>
<p>I'm an avid Emacs user, so it appears more than once in the list. The original list of categories doesn't include coding, for which I obviously also use Emacs when possible š. It is my default app for almost all text related tasks. But for many other categories, I really just use <em>default</em> apps.</p>
<p>So, here are the apps I use:</p>
<ul>
<li>šØ Mail Client: Mail.app</li>
<li>š® Mail Server: Fastmail</li>
<li>š Notes: Emacs (org-roam)</li>
<li>ā To-Do: Emacs (org-mode)</li>
<li>š· iPhone Photo Shooting: Lock-screen button</li>
<li>š¦ Photo Management: Photos.app</li>
<li>š Calendar: Calendar.app</li>
<li>š Cloud File Storage: Apple iCloud</li>
<li>š RSS: Emacs (elfeed)</li>
<li>šš»āāļø Contacts: Contacts.app</li>
<li>š Browser: Firefox on Desktop, Safari on Mobile</li>
<li>š¬ Chat: Telegram</li>
<li>š Bookmarks: Firefox, Safari</li>
<li>š Read It Later: Emacs (org-mode)</li>
<li>š Word Processing: Emacs (org-mode), Google Docs</li>
<li>š Spreadsheets: Google Sheets</li>
<li>š Presentations: Google Sheets</li>
<li>š Shopping Lists: Apple Reminder</li>
<li>š“ Meal Planning: N/A</li>
<li>š° Budgeting and Personal Finance: N/A</li>
<li>š° News: N/A</li>
<li>šµ Music: Spotify</li>
<li>š¤ Podcasts: Apple Podcasts</li>
<li>š Password Management: 1Password</li>
</ul>
<p>And some extra categories not mentioned in the podcast:</p>
<ul>
<li>š§® Code Editor: Emacs</li>
<li>šØāš» Code Hosting: GitHub</li>
<li>šØš»āš» Terminal: iTerm</li>
<li>š VPN: ProtonVPN</li>
</ul>
<p>Checkout <a href="https://defaults.rknight.me/">Robb Knight's page</a> with the list of people who are joining in.</p>
Three months with a mechanical keyboard2023-11-17T00:00:00Zhttps://dolzhenko.me/blog/2023/11/mechanical-keyboard/<figure class="picture">
<a href="keyboard.jpeg">
<picture><source type="image/avif" srcset="/blog/2023/11/mechanical-keyboard/hAAtkbMPG5-300.avif 300w, /blog/2023/11/mechanical-keyboard/hAAtkbMPG5-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="Keychrone K8" loading="lazy" decoding="async" src="/blog/2023/11/mechanical-keyboard/hAAtkbMPG5-300.jpeg" width="740" height="480" srcset="/blog/2023/11/mechanical-keyboard/hAAtkbMPG5-300.jpeg 300w, /blog/2023/11/mechanical-keyboard/hAAtkbMPG5-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption>Keychrone K8</figcaption>
</figure>
<p>Even though I use a laptop as my main work computer, the lid is usually closed while the laptop is connected to an external monitor and a keyboard. And for a long time I was a happy Apple Magic Keyboard user. Until this summer, when I impulsively ordered my first mechanical keyboard.</p>
<p>The hype around them has been chasing me for a long time. Nowadays, it seems like every second computer geek uses a mechanical keyboard of some sort. I heard so many people talking about endless customisation possibilities and superior tactile experience, so eventually I gave up and decided to give it a try.</p>
<p>After doing some research and considering what I already knew about the available options, I decided to go with Keychrone, which is probably one of the most popular brands. My model is Keychrone K9 Pro, with brown switches, aluminium frame, and RGB back-light.</p>
<p>The last one turned out to be quite useless as I really have my eyes on a keyboard and not often work in the dark.</p>
<p>The Keychrone K9 has a limited 65% layout and I also made a mistake ordering a version with ANSI layout instead of ISO as on my laptop. So it took a few weeks to adjust my typing habits. But now it feels as natural as my previous keyboard.</p>
<p>Besides the back-light tweaking, the only customisation I did so far is remapping Caps Lock to Left Control. On macOS, one can also do this in the system settings, so I'm not sure if it counts. I may consider using a different set of key-caps to slightly change the look of the keyboard. Not sure that I'm going to customize it beyond that.</p>
<p>I must say that the tactile and emotional experience exceeded my expectations. The keyboard is heavy and solid. It is durable, and it makes an impression that it will serve me for many years. I was afraid that is going to be too loud, but the sound turned out to be just right. Long key travel was something new to get used after years of using Apple's low-profile keyboards, but it diffidently improves the typing experience for me.</p>
<p>After three month of using the keyboard, I still feel a bit excited every time I return to my work station knowing that I'm going to type using my new keyboard. I haven't become a mechanical keyboard enthusiast or a geek though and most likely won't. However, I'm happy that I tried it and unlikely will switch back.</p>
Fondness for books2024-01-31T00:00:00Zhttps://dolzhenko.me/blog/2024/01/fondness-for-books/<blockquote>
<p>The post is inspired by and written for the January 2024's <a href="https://indieweb.org/indieweb-carnival">IndieWeb Carnival</a> hosted by <a href="https://foreverliketh.is/">foreverliketh.is</a>. It's a bit overdue, so I didn't bother to submit it, but I still wanted to share it.</p>
</blockquote>
<p>Paper books has always played an important role throughout my life. One of my brightest childhood memories is me getting into my grandparents' house attic and playing with their old books. My grandmother was a schoolteacher and had five sons so they had quite a library of books at home.</p>
<p>I say playing because being seven years old at that time I could barely understand what was written in most of those books. Big part of them were school books on mathematics, physics, chemistry, etc. I did read the prose, but that were those books I was fascinated the most. There was even a book on botany published around 1905 or so. The attic was a real treasure cave.</p>
<p>Even though I didn't fully understand most of the things in those books, I still sharply remember those feelings I had "reading" them. An overwhelming curiosity and eagerness to figure things out. The state of mind I wish we all could preserve in ourselves as adults.</p>
<p>That experience fostered love for books that still lasts in me. And it is not a simple love of reading. No, it is something more and deep I have trouble to explain. Every single time I get a book in my hands it fills me with so much joy and childish excitement. It's magical. In such a little object there may be endless worlds you can dive into and wonder, or knowledge and wisdom gained by generations, and all that in right your hands.</p>
Signed up for my first running event2024-02-05T00:00:00Zhttps://dolzhenko.me/blog/2024/02/first-running-event/<p>I began running regularly twice a week last December, and so far, this is my longest running streak. I ran in high school and university, as probably many did. However, it was not that regular, occurring only once a week at most. As an adult, I made several attempts to build a routine, but they would fail pretty quickly.</p>
<p>Being a bit of a competitive person, I thought that participating in some sort of running event might help me stay motivated and stick to the routine. So, this weekend, I signed up for my first event and am already looking forward to when the registration for another one opens.</p>
<p>The event will take place in Amstelveen, Netherlands, the city I live in, on March 17. They will hold several runs simultaneously at different distances, from 1K to the Marathon. I decided to try the 10K.</p>
<p>I have already reached a point where I can manage to run 5K without falling apart. I hope 40 days will be enough for me to get into shape for 10K. My running time is far from great, but for now, my goal is rather simple: participate, make it to the finish, and have fun.</p>
Morning on a farm2024-03-09T00:00:00Zhttps://dolzhenko.me/blog/2024/03/morning-on-a-farm/<div class="pictures"><div class="horizontal center">
<a href="img_5717.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/03/morning-on-a-farm/D4uofPv1_H-300.avif 300w, /blog/2024/03/morning-on-a-farm/D4uofPv1_H-480.avif 480w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="" loading="lazy" decoding="async" src="/blog/2024/03/morning-on-a-farm/D4uofPv1_H-300.jpeg" width="480" height="640" srcset="/blog/2024/03/morning-on-a-farm/D4uofPv1_H-300.jpeg 300w, /blog/2024/03/morning-on-a-farm/D4uofPv1_H-480.jpeg 480w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
</div><div class="horizontal center">
<a href="img_5720.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/03/morning-on-a-farm/SXdUmzbz8J-300.avif 300w, /blog/2024/03/morning-on-a-farm/SXdUmzbz8J-480.avif 480w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="" loading="lazy" decoding="async" src="/blog/2024/03/morning-on-a-farm/SXdUmzbz8J-300.jpeg" width="480" height="640" srcset="/blog/2024/03/morning-on-a-farm/SXdUmzbz8J-300.jpeg 300w, /blog/2024/03/morning-on-a-farm/SXdUmzbz8J-480.jpeg 480w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
</div><div class="horizontal center">
<a href="img_5723.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/03/morning-on-a-farm/USFza6lOLr-300.avif 300w, /blog/2024/03/morning-on-a-farm/USFza6lOLr-480.avif 480w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="" loading="lazy" decoding="async" src="/blog/2024/03/morning-on-a-farm/USFza6lOLr-300.jpeg" width="480" height="640" srcset="/blog/2024/03/morning-on-a-farm/USFza6lOLr-300.jpeg 300w, /blog/2024/03/morning-on-a-farm/USFza6lOLr-480.jpeg 480w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
</div><div class="horizontal center">
<a href="img_5718.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/03/morning-on-a-farm/1VEjhDsZ_3-300.avif 300w, /blog/2024/03/morning-on-a-farm/1VEjhDsZ_3-640.avif 640w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="" loading="lazy" decoding="async" src="/blog/2024/03/morning-on-a-farm/1VEjhDsZ_3-300.jpeg" width="640" height="480" srcset="/blog/2024/03/morning-on-a-farm/1VEjhDsZ_3-300.jpeg 300w, /blog/2024/03/morning-on-a-farm/1VEjhDsZ_3-640.jpeg 640w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
</div></div>
<p>There are at least four open farms within a 30-minute bike ride from us. This Saturday, we went to one of them for the first time since winter.</p>
<p>This particular farm isn't our favorite, but being the closest makes it perfect for a lazy weekend family trip.</p>
<p>Visiting such a farm is a great way to spend a few hours with a small kid outdoors, especially when you've exhausted all the playgrounds in the neighborhood.</p>
10K at KPMG Lentemarathon in Amstelveen2024-03-20T10:00:00Zhttps://dolzhenko.me/blog/2024/03/10k-run/<div class="pictures"><div class="vertical center">
<a href="livj22423.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/03/10k-run/SVCIvaZRwT-300.avif 300w, /blog/2024/03/10k-run/SVCIvaZRwT-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="" loading="lazy" decoding="async" src="/blog/2024/03/10k-run/SVCIvaZRwT-300.jpeg" width="740" height="1110" srcset="/blog/2024/03/10k-run/SVCIvaZRwT-300.jpeg 300w, /blog/2024/03/10k-run/SVCIvaZRwT-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
</div><div class="horizontal center">
<a href="klah10331.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/03/10k-run/UHMHB3pxdZ-300.avif 300w, /blog/2024/03/10k-run/UHMHB3pxdZ-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="" loading="lazy" decoding="async" src="/blog/2024/03/10k-run/UHMHB3pxdZ-300.jpeg" width="740" height="493" srcset="/blog/2024/03/10k-run/UHMHB3pxdZ-300.jpeg 300w, /blog/2024/03/10k-run/UHMHB3pxdZ-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
</div><div class="horizontal left-top">
<a href="certificate.png">
<picture><source type="image/avif" srcset="/blog/2024/03/10k-run/Dh24ELzjwn-300.avif 300w, /blog/2024/03/10k-run/Dh24ELzjwn-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="" loading="lazy" decoding="async" src="/blog/2024/03/10k-run/Dh24ELzjwn-300.jpeg" width="740" height="388" srcset="/blog/2024/03/10k-run/Dh24ELzjwn-300.jpeg 300w, /blog/2024/03/10k-run/Dh24ELzjwn-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
</div></div>
<p>This Sunday afternoon, <a href="https://www.athlinks.com/event/376780/results/Event/1075473/Course/2451919/Bib/6640">I run my first 10K</a> in an big running event.</p>
<p>My wife and I started running regularly last December.
We'd hit the pavement a couple of times a week, usually doing three to five kilometers each time.
Well, just a week before this event, I decided to push myself a bit and try running a full 10K.</p>
<p>Anyway, it was only my second 10K ever, and honestly, I didn't have high expectations.
But I was pleasantly surprised by how it went.</p>
<p>I finished the race in under an hour, with a pace of 6:05 minutes per kilometers.
And the best part? I felt quite good afterwards. A bit dizzy at the finish line, as I decided to push a bit further at lest kilometer. But totally fine a few minutes after.</p>
<p>I suppose it's all mostly because of the adrenaline rush, though.
Usually, during my training runs, I have to go slower, with a pace above 7:00 minutes per kilometer, to keep my heart rate down, but not this time.</p>
<p>My wife also ran in the event, doing the 5K, and she also did better than she thought she would.</p>
<p>As for the event itself, I had a blast.
Even though I'm not a fan of big crowds, waiting with over a thousand other people for that starting pistol to fire was really exciting.
Plus, running alongside others was so much more fun than my usual solo runs.</p>
<p>Oh, and the organization was top-notch. We got a bunch of emails the week before with all the event details, and there were volunteers all along the route handing out water and snacks. There were also a group of medics ready, just in case anyone get injured.</p>
<p>Taking part in this run has seriously fired up my motivation to keep at it and maybe even tackle some more races down the line.</p>
<p><em>Note to future self: book a locker in advance while they are still available or buy a running belt pack, otherwise you'll have to carry your water and phone in hands.</em></p>
Accidental coffee hiatus2024-04-03T14:00:00Zhttps://dolzhenko.me/blog/2024/04/coffee-hiatus/<p>I've been regularly consuming coffee for years.
Typically, I have two to three cups of filter coffee and a cup of decaf cappuccino a day, mostly in the morning.
I deliberately try to limit my caffeine intake, as I start feeling unwell after the fourth or fifth cup.</p>
<p>For the last year or year and a half, at home, with rare exceptions, I've been drinking coffee that I order from the same local coffee roaster here in Amsterdam.
They deliver it fresh, often within the same week of roasting.
So, typically, I order a new batch in advance to allow it to rest a bit and to ensure that I won't run out of beans.</p>
<p>However, this time things went awry.
A week before Easter, I noticed that we were almost out of coffee.
So, I rushed to place an order, hoping to receive it before the weekend.</p>
<p>Unfortunately, DHL gods had other plans for me and by mistake rerouted my order so it spend all Easter traveling around Netherlands.
Thus, by accident, I had a almost five-day coffee hiatus that I hadn't planned for.</p>
<p>You've probably come across articles describing people's experiences of giving up coffee and caffeine consumption, and how it positively affected their lives.
Improved sleep, reduced anxiety, and normalized blood pressure are just a few examples of such effects.</p>
<p>In my case, however, I felt no difference ā not even a bit.</p>
<p>It's not that I don't experience any of those problems.
Certainly, my sleep could be better, and I'd like to be less anxious.
But removing a single substance from my diet didn't make any significant difference to my well-being.
As with anything else, I guess, <a href="https://en.wikipedia.org/wiki/The_dose_makes_the_poison">the dose makes the poison</a>.</p>
<p>What did make a noticeable difference in my case is regular exercise.
I spend most of my day sitting at a desk, staring at a monitor.
Consequently, before I started running regularly, I often felt like a vegetable, both mentally and physically, especially in the morning.</p>
<p>Am I glad that I had this little experiment? Yes. Will I continue to enjoy coffee? Definitely.</p>
Spent a lovely morning working in the fresh air2024-05-02T09:45:00Zhttps://dolzhenko.me/blog/2024/05/morning-in-the-fresh-air/<p>The summer is coming here in the Netherlands, and the gloomy days are nearly over.
I spent the entire morning working outdoors, enjoying the weather.
It was challenging to find a spot without flies and direct sunlight, though.</p>
<p>I'm seriously considering investing in a comfy folding chair and a solar laptop charger.</p>
<figure class="picture">
<a href="pond.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/05/morning-in-the-fresh-air/X2Q4ph66sP-300.avif 300w, /blog/2024/05/morning-in-the-fresh-air/X2Q4ph66sP-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="View on a pond from a bench" loading="lazy" decoding="async" src="/blog/2024/05/morning-in-the-fresh-air/X2Q4ph66sP-300.jpeg" width="740" height="555" srcset="/blog/2024/05/morning-in-the-fresh-air/X2Q4ph66sP-300.jpeg 300w, /blog/2024/05/morning-in-the-fresh-air/X2Q4ph66sP-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption>View on a pond from a bench</figcaption>
</figure>
Cuddled with baby goats on a farm2024-06-08T14:34:00Zhttps://dolzhenko.me/blog/2024/06/goat-farm/<p>This Saturday went all together with some friends to <a href="https://www.openstreetmap.org/#map=19/52.31299/4.82459">a goat farm nearby</a> to cuddle and feed baby goats and grab a snack with coffee.</p>
<div class="pictures"><div class="vertical center">
<a href="IMG_5892.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/06/goat-farm/-fAz_d9wX8-300.avif 300w, /blog/2024/06/goat-farm/-fAz_d9wX8-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="" loading="lazy" decoding="async" src="/blog/2024/06/goat-farm/-fAz_d9wX8-300.jpeg" width="740" height="986" srcset="/blog/2024/06/goat-farm/-fAz_d9wX8-300.jpeg 300w, /blog/2024/06/goat-farm/-fAz_d9wX8-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
</div><div class="vertical center">
<a href="IMG_5900.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/06/goat-farm/CecAer2_bU-300.avif 300w, /blog/2024/06/goat-farm/CecAer2_bU-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="" loading="lazy" decoding="async" src="/blog/2024/06/goat-farm/CecAer2_bU-300.jpeg" width="740" height="986" srcset="/blog/2024/06/goat-farm/CecAer2_bU-300.jpeg 300w, /blog/2024/06/goat-farm/CecAer2_bU-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
</div><div class="vertical center">
<a href="IMG_5898.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/06/goat-farm/dFMOzBSDKK-300.avif 300w, /blog/2024/06/goat-farm/dFMOzBSDKK-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="" loading="lazy" decoding="async" src="/blog/2024/06/goat-farm/dFMOzBSDKK-300.jpeg" width="740" height="954" srcset="/blog/2024/06/goat-farm/dFMOzBSDKK-300.jpeg 300w, /blog/2024/06/goat-farm/dFMOzBSDKK-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
</div><div class="horizontal center">
<a href="IMG_5895.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/06/goat-farm/fR0TV9kBhU-300.avif 300w, /blog/2024/06/goat-farm/fR0TV9kBhU-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="" loading="lazy" decoding="async" src="/blog/2024/06/goat-farm/fR0TV9kBhU-300.jpeg" width="740" height="555" srcset="/blog/2024/06/goat-farm/fR0TV9kBhU-300.jpeg 300w, /blog/2024/06/goat-farm/fR0TV9kBhU-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
</div><div class="horizontal center">
<a href="IMG_5914.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/06/goat-farm/ETf--ApytQ-300.avif 300w, /blog/2024/06/goat-farm/ETf--ApytQ-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="" loading="lazy" decoding="async" src="/blog/2024/06/goat-farm/ETf--ApytQ-300.jpeg" width="740" height="555" srcset="/blog/2024/06/goat-farm/ETf--ApytQ-300.jpeg 300w, /blog/2024/06/goat-farm/ETf--ApytQ-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
</div></div>
Relocated the site2024-06-18T08:10:00Zhttps://dolzhenko.me/blog/2024/06/relocated-the-site/<figure class="picture">
<a href="uptime.png">
<picture><source type="image/avif" srcset="/blog/2024/06/relocated-the-site/QmEXO9Ukrw-300.avif 300w, /blog/2024/06/relocated-the-site/QmEXO9Ukrw-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="Output of the uptime command displaying 300 days of uptime" loading="lazy" decoding="async" src="/blog/2024/06/relocated-the-site/QmEXO9Ukrw-300.jpeg" width="740" height="283" srcset="/blog/2024/06/relocated-the-site/QmEXO9Ukrw-300.jpeg 300w, /blog/2024/06/relocated-the-site/QmEXO9Ukrw-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption>You served me well, but it's time to say goodbye</figcaption>
</figure>
<p>I've relocated this website to a new server. They old one served well, but it was too beefy and expensive to serve such a small web-site.
We used to play Minecraft and I hosted a server for it there, but it's been idle for a long time now.</p>
<p>Instead of a dedicated server (droplet) on DigitalOcean, the site now runs on a smallest shared vCPU server available on Hetzner.
Now it costs me only 4.59 EUR a month, instead 12 EUR a month. And I still have place to host my another website and my wife's website.</p>
<p>The other reason for relocation was that I wanted to try <a href="https://caddyserver.com/">Caddy</a> instead of <a href="https://nginx.org/en/">nginx</a>.
Caddy promises to be much simpler in operation and provides automatic SSL certificate generation out of the box.</p>
<p>The only things I needed to do after I created a server in Hetzner console were to <a href="https://caddyserver.com/docs/install#debian-ubuntu-raspbian">install Caddy</a>,
put the following lines in its configuration file and restart it with <code>sudo systemctl restart caddy</code>:</p>
<pre><code>dolzhenko.me {
root * /var/www/dolzhenko.me
file_server
}
</code></pre>
Homemade gelato in Stadshart Amstelveen2024-06-18T22:00:00Zhttps://dolzhenko.me/blog/2024/06/gelato-in-amstelveen/<p>This afternoon, we had an unplanned family trip to the shopping mall in the city center.
My wife was taking daughter to a drawing class there and I decided to join them and work a bit from the library near by.</p>
<p>On the way there, my wife went to pick-up her glasses, while the rest of us got a little treat in <a href="https://patagonias.nl/over-patagonias-ijssalon-amstelveen/#">Patagonias</a>.
It's small-business shop that offers delicious homemade gelato in many flavours. I can't recommend it enough, if you going to be anywhere around.</p>
<figure class="picture">
<a href="gelato.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/06/gelato-in-amstelveen/Zs0LcmlfYl-300.avif 300w, /blog/2024/06/gelato-in-amstelveen/Zs0LcmlfYl-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="Two pairs of hands scooping gelato" loading="lazy" decoding="async" src="/blog/2024/06/gelato-in-amstelveen/Zs0LcmlfYl-300.jpeg" width="740" height="740" srcset="/blog/2024/06/gelato-in-amstelveen/Zs0LcmlfYl-300.jpeg 300w, /blog/2024/06/gelato-in-amstelveen/Zs0LcmlfYl-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption>Two pairs of hands scooping gelato</figcaption>
</figure>
Bicycle trip to the seaside in Zandvoort2024-07-19T04:45:00Zhttps://dolzhenko.me/blog/2024/07/bicycle-trip-to-zandvoort/<p>We moved to the Netherlands a few years ago.
It was early winter, the COVID pandemic was in full swing and we didn't have much to do in spare time.
Once we got our first bicycles we wanted to have a little adventure and explore the country a bit.</p>
<p>We decided to go to the closest beach which is the North Sea seaside near <a href="https://osm.org/go/0E4fx8xg-">Zandvoort</a>.
It is around 30 km from the place we live and it took us about 2 hours to get there on city bikes.
It was January 1st and despite a frosty weather, we really enjoyed the trip.</p>
<p>This week, to celebrate a little anniversary, we decided to repeat the ride.</p>
<p>The weather promised to be good, with no rain and not much wind.
So I took a day off on Wednesday and that afternoon we headed to Zandvoort.</p>
<hr>
<p>This time the ride took a bit longer as we got a bit lost in Harlem thanks to Komoot.
On the way back, however, we found another route around the city and managed to skip almost all traffic and traffic lights crossing the river on a little ferry.</p>
<p>In the middle of <a href="https://www.openstreetmap.org/directions?engine=graphhopper_bicycle&route=52.2798%2C4.8627%3B52.3728%2C4.5242#map=12/52.3095/4.7791">the route</a>, a few kilometres before Harlem, there is <a href="https://osm.org/go/0E43xptrJ--">a spot</a> close to one of the Amsterdam Schipol's runaways where you can watch aeroplanes landing.
We watched a few while taking a break for a snack and some water.</p>
<p>Once we reached the seaside, we walked a bit along the coastline, took a few photos, and headed to the nearest cafe for lunch.</p>
<p>We would have loved to spend more time on the beach, but we were short on time and had to head home.
It was a great way to break out of the routine and enjoy time together.</p>
<figure class="picture">
<a href="IMG_6018.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/07/bicycle-trip-to-zandvoort/xolQoOD60a-300.avif 300w, /blog/2024/07/bicycle-trip-to-zandvoort/xolQoOD60a-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="A cyclist on a bike lane next to a wheat field under gloomy skies" loading="lazy" decoding="async" src="/blog/2024/07/bicycle-trip-to-zandvoort/xolQoOD60a-300.jpeg" width="740" height="740" srcset="/blog/2024/07/bicycle-trip-to-zandvoort/xolQoOD60a-300.jpeg 300w, /blog/2024/07/bicycle-trip-to-zandvoort/xolQoOD60a-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption>On our way between Amstelveen and Harlem</figcaption>
</figure>
<figure class="picture">
<a href="IMG_6021.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/07/bicycle-trip-to-zandvoort/wi7sogzCje-300.avif 300w, /blog/2024/07/bicycle-trip-to-zandvoort/wi7sogzCje-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="A cycle lane covered with solar panels" loading="lazy" decoding="async" src="/blog/2024/07/bicycle-trip-to-zandvoort/wi7sogzCje-300.jpeg" width="740" height="740" srcset="/blog/2024/07/bicycle-trip-to-zandvoort/wi7sogzCje-300.jpeg 300w, /blog/2024/07/bicycle-trip-to-zandvoort/wi7sogzCje-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption><a href="https://www.bam.com/nl/pers/persberichten/2022/5/zonnefietspad-n232-gaat-energie-opwekken">An experimental cycling lane covered with solar panels</a>.</figcaption>
</figure>
<figure class="picture">
<a href="IMG_6038.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/07/bicycle-trip-to-zandvoort/zGWcA8OM9I-300.avif 300w, /blog/2024/07/bicycle-trip-to-zandvoort/zGWcA8OM9I-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="A summerhouse in Art Nouveau style" loading="lazy" decoding="async" src="/blog/2024/07/bicycle-trip-to-zandvoort/zGWcA8OM9I-300.jpeg" width="740" height="740" srcset="/blog/2024/07/bicycle-trip-to-zandvoort/zGWcA8OM9I-300.jpeg 300w, /blog/2024/07/bicycle-trip-to-zandvoort/zGWcA8OM9I-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption>One of the many summerhouses in Zandvoort built in Art Nouveau style. This was turned out be <a href="https://www.monumenten.nl/monument/517484">a national monument</a>.</figcaption>
</figure>
<figure class="picture">
<a href="IMG_6045.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/07/bicycle-trip-to-zandvoort/5ADdndmmIU-300.avif 300w, /blog/2024/07/bicycle-trip-to-zandvoort/5ADdndmmIU-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="A woman looking at the sea" loading="lazy" decoding="async" src="/blog/2024/07/bicycle-trip-to-zandvoort/5ADdndmmIU-300.jpeg" width="740" height="740" srcset="/blog/2024/07/bicycle-trip-to-zandvoort/5ADdndmmIU-300.jpeg 300w, /blog/2024/07/bicycle-trip-to-zandvoort/5ADdndmmIU-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption>Look! The sea!</figcaption>
</figure>
<figure class="picture">
<a href="IMG_6052.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/07/bicycle-trip-to-zandvoort/iAHtxnllnU-300.avif 300w, /blog/2024/07/bicycle-trip-to-zandvoort/iAHtxnllnU-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="A woman using a backpack as a tripod to set up a camera" loading="lazy" decoding="async" src="/blog/2024/07/bicycle-trip-to-zandvoort/iAHtxnllnU-300.jpeg" width="740" height="740" srcset="/blog/2024/07/bicycle-trip-to-zandvoort/iAHtxnllnU-300.jpeg 300w, /blog/2024/07/bicycle-trip-to-zandvoort/iAHtxnllnU-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption>We didn't take a tripod with us, so she improvised it using a backpack</figcaption>
</figure>
<figure class="picture">
<a href="IMG_6064.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/07/bicycle-trip-to-zandvoort/eYo8m6BtpX-300.avif 300w, /blog/2024/07/bicycle-trip-to-zandvoort/eYo8m6BtpX-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="A plate of Mexican salad, a sandwich, a glass of wine, and mojito" loading="lazy" decoding="async" src="/blog/2024/07/bicycle-trip-to-zandvoort/eYo8m6BtpX-300.jpeg" width="740" height="740" srcset="/blog/2024/07/bicycle-trip-to-zandvoort/eYo8m6BtpX-300.jpeg 300w, /blog/2024/07/bicycle-trip-to-zandvoort/eYo8m6BtpX-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption>Delicious lunch at Beach Club Tien</figcaption>
</figure>
<figure class="picture">
<a href="IMG_6068.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/07/bicycle-trip-to-zandvoort/Lm8czq68Mw-300.avif 300w, /blog/2024/07/bicycle-trip-to-zandvoort/Lm8czq68Mw-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="A ferry in the distance on a river" loading="lazy" decoding="async" src="/blog/2024/07/bicycle-trip-to-zandvoort/Lm8czq68Mw-300.jpeg" width="740" height="740" srcset="/blog/2024/07/bicycle-trip-to-zandvoort/Lm8czq68Mw-300.jpeg 300w, /blog/2024/07/bicycle-trip-to-zandvoort/Lm8czq68Mw-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption>A ferry over the Spaarne river in Harlem on our way back</figcaption>
</figure>
<figure class="picture">
<a href="IMG_6069.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/07/bicycle-trip-to-zandvoort/lWxaPuhc1x-300.avif 300w, /blog/2024/07/bicycle-trip-to-zandvoort/lWxaPuhc1x-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="A view on a river" loading="lazy" decoding="async" src="/blog/2024/07/bicycle-trip-to-zandvoort/lWxaPuhc1x-300.jpeg" width="740" height="740" srcset="/blog/2024/07/bicycle-trip-to-zandvoort/lWxaPuhc1x-300.jpeg 300w, /blog/2024/07/bicycle-trip-to-zandvoort/lWxaPuhc1x-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption>A view on the Spaarne river while we're waiting for the ferry</figcaption>
</figure>
<figure class="picture">
<a href="IMG_6082.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/07/bicycle-trip-to-zandvoort/oeilI9aJy8-300.avif 300w, /blog/2024/07/bicycle-trip-to-zandvoort/oeilI9aJy8-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="A picture of a landing aeroplane from underneath" loading="lazy" decoding="async" src="/blog/2024/07/bicycle-trip-to-zandvoort/oeilI9aJy8-300.jpeg" width="740" height="740" srcset="/blog/2024/07/bicycle-trip-to-zandvoort/oeilI9aJy8-300.jpeg 300w, /blog/2024/07/bicycle-trip-to-zandvoort/oeilI9aJy8-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption><a href="https://www.flightradar24.com/data/aircraft/b-222h">B-222H</a> arriving to Amsterdam Schiphol from Shanghai spotted on <a href="https://osm.org/go/0E43xptrJ--">N232</a></figcaption>
</figure>
A half day off in Den Haag2024-10-14T10:00:00Zhttps://dolzhenko.me/blog/2024/10/half-day-off-in-den-haag/<div class="pictures"><div class="horizontal center">
<a href="IMG_7176.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/10/half-day-off-in-den-haag/skB2Dl5E0t-300.avif 300w, /blog/2024/10/half-day-off-in-den-haag/skB2Dl5E0t-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="Den Haag NS train station" loading="lazy" decoding="async" src="/blog/2024/10/half-day-off-in-den-haag/skB2Dl5E0t-300.jpeg" width="740" height="555" srcset="/blog/2024/10/half-day-off-in-den-haag/skB2Dl5E0t-300.jpeg 300w, /blog/2024/10/half-day-off-in-den-haag/skB2Dl5E0t-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
</div><div class="horizontal center">
<a href="IMG_7179.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/10/half-day-off-in-den-haag/QDKzcX2d2j-300.avif 300w, /blog/2024/10/half-day-off-in-den-haag/QDKzcX2d2j-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="Autumn colours over a canal" loading="lazy" decoding="async" src="/blog/2024/10/half-day-off-in-den-haag/QDKzcX2d2j-300.jpeg" width="740" height="555" srcset="/blog/2024/10/half-day-off-in-den-haag/QDKzcX2d2j-300.jpeg 300w, /blog/2024/10/half-day-off-in-den-haag/QDKzcX2d2j-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
</div><div class="horizontal center">
<a href="IMG_7177.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/10/half-day-off-in-den-haag/pJEc3uZBOi-300.avif 300w, /blog/2024/10/half-day-off-in-den-haag/pJEc3uZBOi-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="Rented bicycle from Donkey Republic" loading="lazy" decoding="async" src="/blog/2024/10/half-day-off-in-den-haag/pJEc3uZBOi-300.jpeg" width="740" height="986" srcset="/blog/2024/10/half-day-off-in-den-haag/pJEc3uZBOi-300.jpeg 300w, /blog/2024/10/half-day-off-in-den-haag/pJEc3uZBOi-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
</div><div class="horizontal center">
<a href="IMG_7181.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/10/half-day-off-in-den-haag/WV9BD0bNR2-300.avif 300w, /blog/2024/10/half-day-off-in-den-haag/WV9BD0bNR2-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="Coffee and bun" loading="lazy" decoding="async" src="/blog/2024/10/half-day-off-in-den-haag/WV9BD0bNR2-300.jpeg" width="740" height="555" srcset="/blog/2024/10/half-day-off-in-den-haag/WV9BD0bNR2-300.jpeg 300w, /blog/2024/10/half-day-off-in-den-haag/WV9BD0bNR2-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
</div></div>
<p>In the morning I took a half-day off and went to Den Haag to submit documents to the consulate for a new passport.
I work remotely and donāt commute to the office, so I used the opportunity to shake up the routine and travel a bit.</p>
<p>I left earlier to make it in time, but it took only around one hour to get from my apartment to the <a href="https://osm.org/go/0E4CXKTCQ?node=3497550450">Den Haag NS train station</a>.
So I used the time to ride on a rented bike around the old city centre a little and stopped by <a href="https://osm.org/go/0E4BrM7wV?node=9111642118">Single Estate Coffee Roasters</a> cafe I like to visit when I'm in the town.
They have good coffee they roast themselves and fresh pastry. This time the coffee was good, although not that bright as I expected it to be reading the card.</p>
<p>It was time for my appointment at the consulate. Itās close to the cafe and surprisingly it only took 20 minutes to apply for the new passport at the consulate, including taking a picture, fingerprints and paying the fee.</p>
<p>On the way back to the train station I stopped by Decathlon. After I got into running such places are like candy stores to me. I couldnāt resist and bought a running vest Iāve been thinking to buy for a while. I wasnāt sure if it suits me or not, so I didnāt want to buy it online and used the chance to try out one in a store.</p>
<figure class="picture">
<a href="IMG_7188.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/10/half-day-off-in-den-haag/b2UwenPo4Y-300.avif 300w, /blog/2024/10/half-day-off-in-den-haag/b2UwenPo4Y-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="Running vest" loading="lazy" decoding="async" src="/blog/2024/10/half-day-off-in-den-haag/b2UwenPo4Y-300.jpeg" width="740" height="986" srcset="/blog/2024/10/half-day-off-in-den-haag/b2UwenPo4Y-300.jpeg 300w, /blog/2024/10/half-day-off-in-den-haag/b2UwenPo4Y-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption>Running vest</figcaption>
</figure>
<p>After the store, I rode to the Central Station and handed out the bike. The Donkeys are cheap and convenient as they are everywhere, but as with any rental services it comes with a price: the quality of their bikes is very low. The back wheel got stiff and started making strange loud noise on the way back.</p>
<p>It was 20 minutes before the train so I went to kiosk and bought a bottle of water and my first in a 5 years pretzel. Gosh, I forgot how salty they are.</p>
<figure class="picture">
<a href="IMG_7185.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/10/half-day-off-in-den-haag/VWhdv9IuES-300.avif 300w, /blog/2024/10/half-day-off-in-den-haag/VWhdv9IuES-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="Pretzel and water" loading="lazy" decoding="async" src="/blog/2024/10/half-day-off-in-den-haag/VWhdv9IuES-300.jpeg" width="740" height="986" srcset="/blog/2024/10/half-day-off-in-den-haag/VWhdv9IuES-300.jpeg 300w, /blog/2024/10/half-day-off-in-den-haag/VWhdv9IuES-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption>Pretzel and water</figcaption>
</figure>
<p>One the way back in the train I remembered how nice it feels sometimes to be surrounded by people, just to sit, look around, listen, and observe.</p>
A new sourdough starter2024-11-21T12:00:00Zhttps://dolzhenko.me/blog/2024/11/sourdough-starter/<p>Last year, around this time, I learned how to bake sourdough bread and began baking a loaf every other morning throughout the whole winter and into early spring.</p>
<p>With winter approaching again, the days are getting colder and darker.
I thought it would be nice to bring back the routine of having a warm, freshly baked loaf on the breakfast table.</p>
<p>The starter, I used last year, obviously didnāt survive.
So, Iām growing a new one, and after a few days of feeding, itās coming to live! š</p>
<figure class="picture">
<a href="IMG_7421.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/11/sourdough-starter/_i6CcFVtXr-300.avif 300w, /blog/2024/11/sourdough-starter/_i6CcFVtXr-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="Sourdough starter in a jar" loading="lazy" decoding="async" src="/blog/2024/11/sourdough-starter/_i6CcFVtXr-300.jpeg" width="740" height="555" srcset="/blog/2024/11/sourdough-starter/_i6CcFVtXr-300.jpeg 300w, /blog/2024/11/sourdough-starter/_i6CcFVtXr-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption>Sourdough starter in a jar</figcaption>
</figure>
<hr>
<p>I followed <a href="https://www.theclevercarrot.com/2019/03/beginner-sourdough-starter-recipe/">the same recipe</a> I used last year with a few adjustments.</p>
<h3>Creating the starter</h3>
<ul>
<li>Add <strong>60 g of whole wheat flour</strong> and <strong>60 g of lukewarm water</strong> into a jar, mix it until smooth.</li>
<li>Cover the jar with a lid and place it in a <strong>warm spot for about 48 hours</strong>.</li>
</ul>
<p>You can use any type of flour, but higher protein content typically yields better results.
Make sure that the water itās chlorine free. I use unfiltered tap water.</p>
<p>Finding a warm spot doesnāt need to be complicated.
The warmer the place, the faster the starter will grow.
I place the jar in a slightly open oven with the light onāitās usually warm enough.</p>
<p>After <strong>24 hours</strong>, check the starter.
You may see bubbles, but itās not guaranteed at this stage.
You might also notice a layer of brown liquid called hooch, which is perfectly normal.
Hooch indicates that the starter needs feedingājust pour it off and proceed to the next step.</p>
<h3>Feeding</h3>
<p>After <strong>48 hours</strong> (or when you notice the first signs of hooch), itās time to begin daily feedings.</p>
<ul>
<li>Add equal amounts of flour and water to the starterā<strong>60 g of flour</strong> and <strong>60 g of water</strong> in my caseāand mix well.</li>
<li>Before each feeding, discard a portion of the starter to maintain a manageable size.</li>
</ul>
<p>The recipe I followed recommends gradually increasing the total yield during the first week, with specific amounts for each day.
However, my approach is more flexible. I do use a kitchen scale, though.
Every time, I discard roughly the same amountāor moreāthan Iām about to add.</p>
<p>Repeat this process daily for about 6ā7 days, and your starter should be ready.
Youāll know itās active when itās full of bubbles of various sizes, has a spongy texture, and smells pleasantly tangy.
The last one is subjective, thoughāmy wife didn't enjoy it at any stage š¤¢.</p>
<hr>
<p>Thatās it!
In a few more days, I should have a lively, bubbly starter ready to bake a delicious loaf of sourdough bread.</p>
First bread of the season2024-12-02T20:06:00Zhttps://dolzhenko.me/blog/2024/12/first-bread-of-the-season/<p>The sourdough starter <a href="/blog/2024/11/sourdough-starter/">I wrote about last time</a> has come to life, and I baked my first bread of the season with it this weekend.</p>
<figure class="picture">
<a href="IMG_4276.jpeg">
<picture><source type="image/avif" srcset="/blog/2024/12/first-bread-of-the-season/UkZWah3_MO-300.avif 300w, /blog/2024/12/first-bread-of-the-season/UkZWah3_MO-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="A loaf of sourdough bread" loading="lazy" decoding="async" src="/blog/2024/12/first-bread-of-the-season/UkZWah3_MO-300.jpeg" width="740" height="660" srcset="/blog/2024/12/first-bread-of-the-season/UkZWah3_MO-300.jpeg 300w, /blog/2024/12/first-bread-of-the-season/UkZWah3_MO-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption>A loaf of sourdough bread</figcaption>
</figure>
<p>To make the dough, I followed <a href="https://www.youtube.com/watch?v=2FVfJTGpXnU">a simple recipe</a> I discovered during my earlier bread-baking adventures this year. I had to make a few adjustments to it, though.</p>
<p>Because of the type of flour I useāboth for the starter and the doughāI needed to increase the water ratio slightly. Without this adjustment, the dough would have been too dry and tough. Though, I still need to either refine the ratio or pay more attention to the proofing. This loaf turned out to be bit tighter and not as tender as I would like it to be.</p>
<p>I want to have freshly baked bread for breakfast, but I don't want to wake up in the middle of the night to prepare the dough. So, I start the process the evening before, letting the dough ferment overnight in the fridge. First thing in the morning, before I start making breakfast, I preheat the oven and a cast iron casserole. Then, I take the dough straight from the fridge, place it into the preheated casserole, and bake it for 30 minutes. By the time everyone is awake, I have a warm, nice, loaf ready for breakfast.</p>
<p>Since I donāt bake bread every day, I store my starter in the fridge. To activate it, I take it out and feed it the morning before I plan to bake. This gives it 10ā12 hours in a warm place to come out of hibernation.</p>
<hr>
<p>So far, Iāve only tried simple bread recipes using just water, flour, and salt. In future loaves, Iād like to experiment with adding herbs or seeds to enrich the flavour.</p>
Blue Machine: How the Ocean Shapes Our World2025-01-18T04:36:00Zhttps://dolzhenko.me/blog/2025/01/blue-machine/<p>A <em>fascinating</em> and <em>awe-inspiring</em> book about the oceanās biology, physics, and humanity's complex relationship with it.</p>
<p>I really liked how Czerski structured her book. She doesn't just explain physical and biological processes driving the ocean engineāshe shares her personal journey, canoeing through Hawaiian waters and discovering her own connection to the sea, all while peppering the narrative with a handful of historical anecdotes, jumping from the Roman Republic to World War II.</p>
Thinking about getting a dog2025-01-18T21:06:00Zhttps://dolzhenko.me/blog/2025/01/dog/<p>We've been thinking about bringing a dog into our family for a while. None of us had experience with having a dog in adulthood, plus we weren't sure how our cat would handle it. So we decided that we would first take someone else's dog into our home for a day or two.</p>
<p>Yesterday, a friend of ours brought their dog over for a sleepover. To our surprise, the experience went quite well. The cat wasn't really happy, but they mostly ignored each other. The dog also behaved well, sleeping through the night peacefully on the couch. He isn't really the playful type but loves sitting on laps and is really good with basic commands.</p>
<p>I think that next time, when the friends go on vacation, we'll have him for longer to get an even better sense of what full-time dog ownership might be like.</p>
<figure class="picture">
<a href="IMG_7569.jpeg">
<picture><source type="image/avif" srcset="/blog/2025/01/dog/bexgK-oP6l-300.avif 300w, /blog/2025/01/dog/bexgK-oP6l-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="Me and the dog" loading="lazy" decoding="async" src="/blog/2025/01/dog/bexgK-oP6l-300.jpeg" width="740" height="740" srcset="/blog/2025/01/dog/bexgK-oP6l-300.jpeg 300w, /blog/2025/01/dog/bexgK-oP6l-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption>Me and the dog</figcaption>
</figure>
Home needs no theme2025-01-24T16:50:00Zhttps://dolzhenko.me/blog/2025/01/home-needs-no-theme/<p>Jamie Thingelstad <a href="https://www.thingelstad.com/2025/01/12/if-i-was-born-and.html">writes in his blog</a>:</p>
<blockquote>
<p>Having a blog is like having a single family home. Want to remodel? Okay. Want to play your stereo? Okay, within the noise ordinances. Want to change the way the living room is laid out? Fine, none of our business. This is why I have a blog. I want to have my own space, and do my own things, and not be under a landlord. That also means I have to mow my grass, tend to the rain gutters, and manage the upkeep. And just like houses some take more of that than others.</p>
</blockquote>
<p>I couldnāt agree more. Whatās more, I think it doesnāt have to have a single theme or purpose.</p>
<p>When I first started blogging, I questioned what content belongs here.
Should it be a diary of daily events? A collection of polished essays? A tech blog? A personal journal?</p>
<p>Well, it can be all of these things and more. Itās <strong>my own</strong> digital space after all and Iām free to do whatever I feel like doing.</p>
<p>This is what I enjoy most about personal sites and blogs: people building their own cosy spaces to express themselves, connect with others, and welcome guests - not to sell products or services.</p>
<p>I like having guests and enjoy connecting with people, but I build my home first of all for myself and my family, not for the people who visit me.
The same applies to my digital space.</p>
<p>As <a href="https://lars-christian.com/posts/2024-07-22-re-do-people-irl-know-you-have-a-blog/">Lars once put</a>:</p>
<blockquote>
<p>No one else has anything invested in this. No one cares if you do it, or don't do it. To the world this pursuit is just your cute little hobby.</p>
</blockquote>
Emacs frames are not coming into the foreground on macOS2025-02-26T15:41:00Zhttps://dolzhenko.me/blog/2025/02/emacs-frames-are-not-coming-into-the-foreground-on-mac-os/<p>I have a simple bash script in my <code>$PATH</code> to quickly open files or directories from the terminal in the running instance of Emacs.</p>
<pre><code class="language-bash">#!/usr/bin/env bash
/Applications/Emacs.app/Contents/MacOS/bin/emacsclient "$@"
</code></pre>
<p>However, after upgrading to macOS 15.3, <code>emacsclient</code> stopped bringing the Emacs frame up front.</p>
<p>One of the solutions I could find suggested adding <code>(select-frame-set-input-focus (selected-frame))</code> to the Emacs config.
However, it only works when you start a new instance of Emacs.</p>
<p>What worked for me is adding this to the script before calling <code>emacsclient</code>:</p>
<pre><code class="language-bash">osascript << EOF
tell application "System Events"
tell application process "Emacs"
set frontmost to true
end tell
end tell
EOF
</code></pre>
Vegetarian Chili2025-03-14T09:00:00Zhttps://dolzhenko.me/blog/2025/03/vegetarian-chili/<p>It's a slightly modified version of the chili recipe Adam Ragusea <a href="https://www.youtube.com/watch?v=mb3k0wApWas">posted on his YouTube channel</a>.</p>
<p>I cook it every other week and it works perfectly both as a main or a side dish.
When I first started cooking it, my daughter would request it over and over again, so it even became a meme within our family.</p>
<ul>
<li>400 grams of canned kidney beans</li>
<li>400 grams of canned tomato pulp</li>
<li>3 large bell peppers</li>
<li>3 celery sticks</li>
<li>1 large onion</li>
<li>1 tablespoon of sugar</li>
<li>20 grams of dark chocolate</li>
<li>1 tablespoon of Worcestershire sauce</li>
<li>Seasoning (salt, pepper, paprika, ...)</li>
<li>1 tablespoon of olive oil</li>
</ul>
<p><em>These are the basic ingredients I usually use, with some variations from time to time depending on my mood.
I encourage you to experiment with the ratios as well as different kinds of vegetables, beans, or seasonings.</em></p>
<p>First, I preheat a big pot with a bit of oil.
I use a cast iron casserole pot for that, the same I use for backing bread.
I dice the onion, celery and bell peppers into small chunks and cook them in the pot until soft.</p>
<p>After that, Adam would first add smashed tomatoes and then right after would add beans and seasoning.
I prefer, to cook beans first and add tomatoes and seasonings closer to the end.
So, once vegetables are soft, I dump in the canned beans and simmer them for a half an hour or so until the start sticking to the bottom of the pot.
The ticking part is the key. It means that more starch is released and the consistency is going to be more thicker.</p>
<p>Then, I mix in the canned tomato pulp, season it with salt, paper, and paprika and cook for another 10-15 minutes.
Before turning the heat off, I add chocolate. I prefer dark chocolate without any extra flavouring, but it may be any chocolate you like.</p>
<p>First, I preheat a large pot with a bit of oil.
I use a cast iron casserole pot for this, the same one I use for baking bread.</p>
<p>I dice the onion, celery, and bell peppers into small chunks and cook them in the pot until soft.</p>
<p>After that, Adam would first add crushed tomatoes and then immediately add beans and seasoning.
I prefer to cook the beans first and add tomatoes and seasonings closer to the end.
So, once the vegetables are soft, I add the canned beans and simmer them for about half an hour or until they start sticking to the bottom of the pot.
This sticking part is key - it means that more starch is released and the consistency will be thicker.</p>
<p>Then, I mix in the canned tomato pulp, season it with salt, pepper, and paprika, and cook for another 10-15 minutes.
Before turning the heat off, I add the chocolate.
I prefer dark chocolate without any extra flavoring, but you can use any chocolate you like.</p>
<p>Bon appetit.</p>
Launching Magit from IntelliJ IDEA2025-03-23T14:00:00Zhttps://dolzhenko.me/blog/2025/03/launching-magit-from-intellij-idea/<p>For a large portion of git operations I use daily, I find <a href="https://magit.vc/">Magit</a>ās interface much more convenient than gitās own CLI or IntelliJās UI. Although, I donāt use Emacs for all my coding projects, Iād like to have a shortcut to quickly open Magit for any git repository, either from a terminal or IDEA.</p>
<p>When Iām in a terminal and need to open a file or a directory in Emacs, I call the following wrapper, which I have in my <code>$PATH</code> as <code>emacsclient</code>:</p>
<pre><code class="language-bash">#!/usr/bin/env bash
# Bring Emacs frame to the foreground
osascript << EOF
tell application "System Events"
tell application process "Emacs"
set frontmost to true
end tell
end tell
EOF
/Applications/Emacs.app/Contents/MacOS/bin/emacsclient "$@"
</code></pre>
<p>The wrapper simply brings the current Emacs window to the foreground and calls <code>emacsclient</code> passing the arguments to it.</p>
<p>Now, to open Magit from a terminal, I have another bash script that opens Magitās status view for the current git repository in the running Emacs.</p>
<pre><code class="language-bash">#!/usr/bin/env bash
set -o errexit
git_root=$(git rev-parse --show-toplevel)
emacsclient -e "(magit-status \"${git_root}\")" > /dev/null
</code></pre>
<p>Now coming to the IDE, I didnāt know that before but you can configure a third-party command-line application as an external tool.
You can pass the projectās root or any of <a href="https://www.jetbrains.com/help/idea/built-in-macros.html">the predefined macros</a> to it as an argument.</p>
<figure class="picture">
<a href="magit-external-tool.png">
<picture><source type="image/avif" srcset="/blog/2025/03/launching-magit-from-intellij-idea/xfJejXSnY9-300.avif 300w, /blog/2025/03/launching-magit-from-intellij-idea/xfJejXSnY9-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="External tool configuration UI in IntelliJ IDEA" loading="lazy" decoding="async" src="/blog/2025/03/launching-magit-from-intellij-idea/xfJejXSnY9-300.jpeg" width="740" height="727" srcset="/blog/2025/03/launching-magit-from-intellij-idea/xfJejXSnY9-300.jpeg 300w, /blog/2025/03/launching-magit-from-intellij-idea/xfJejXSnY9-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption>External tool configuration UI in IntelliJ IDEA</figcaption>
</figure>
<p>What more is that you can bind a shortcut to it.</p>
<figure class="picture">
<a href="magit-keymap.png">
<picture><source type="image/avif" srcset="/blog/2025/03/launching-magit-from-intellij-idea/0H3r6QGSbL-300.avif 300w, /blog/2025/03/launching-magit-from-intellij-idea/0H3r6QGSbL-740.avif 740w" sizes="(min-width: 30em) 50vw, 100vw"><img alt="Keymap configuration UI in IntelliJ IDEA" loading="lazy" decoding="async" src="/blog/2025/03/launching-magit-from-intellij-idea/0H3r6QGSbL-300.jpeg" width="740" height="564" srcset="/blog/2025/03/launching-magit-from-intellij-idea/0H3r6QGSbL-300.jpeg 300w, /blog/2025/03/launching-magit-from-intellij-idea/0H3r6QGSbL-740.jpeg 740w" sizes="(min-width: 30em) 50vw, 100vw"></picture>
</a>
<figcaption>Keymap configuration UI in IntelliJ IDEA</figcaption>
</figure>
Bouncing thoughts2025-09-11T04:21:00Zhttps://dolzhenko.me/blog/2025/09/bouncing-thoughts/<p>I often have sleepless nights.</p>
<p>It starts with a single thought, but then one thought leads to another and another, and soon it looks like a mini reactor with thoughts dividing and bouncing inside my head.
Sometimes it's anxiety spiralling into life decisions. Often it's uncertainties or unresolved issues at work, or ideas about new projects.</p>
<p>That may be because night is the only time when my brain is free from external stimuli and allowed to wander freely.</p>
<p>Occasionally, I manage to redirect the thoughts and fall asleep.
I used to practise meditation, and the techniques sometimes help to calm the mind.
Sometimes it's enough just to write them down to soothe the mind.</p>
<p>When I do have time during the day, I use my notes to develop the thoughts a bit further.
When that happens, it's such a relief.</p>
<p>Long walks paired with a paper notebook and pen are also a good way to think through and process things.
Although I don't really manage to shut the laptop and walk outdoors in the middle of a workday.</p>
<p>I often hesitate and keep unprocessed thoughts inside, hoping to polish them before allowing anyone else to see them.
What happens in reality is that they pile up and occupy space in my head.
Even with this post, I feel hesitation whilst writing it.
I need to allow myself to share more unpolished stuffābe it on this blog or at work.</p>
<p>But that's hard. Where is it acceptable to stop and hit āpublishā?</p>
<p>I think I need to realise the difference between unstructured and underdeveloped thoughts.
What I struggle with most, and where my hesitation grows, is structuring my ideas into a meaningful, easy-to-follow form.
But once that's done, once an idea is wrapped up, it must face the real world to develop further.</p>
A take on transparency2025-09-11T07:11:00Zhttps://dolzhenko.me/blog/2025/09/transparency/<p>A colleague of mine shared an interesting perspective on transparency the other day.
It was in the context of decision-making in a corporate environment:</p>
<blockquote>
<p>It's not about everyone taking part in making the decision.</p>
<p>It's not about telling everyone everything about what you're doing at every point during the decision-making process.</p>
<p>It's about providing sufficient context and reasoning behind the decisionāexplaining why the decision was made.</p>
<p>Too little information leaves people confused, anxious, and potentially resentful; too much can overwhelm or distract from what actually matters.</p>
</blockquote>
Quoting Joan Westenberg2026-01-06T14:49:00Zhttps://dolzhenko.me/blog/2026/01/joan-westenberg/<blockquote>
<p>When I write for social media, I'm writing for someone who is one thumb-flick away from a video of either a hate crime or a dog riding a skateboard. Everything I produce has to compete, in real-time, with everything else that could possibly occupy that user's attention. The incentives push toward provocation and emotional activation. The format actively punishes nuance, which means that a thoughtful caveat reads as weakness and any acknowledgment of uncertainty looks like waffling.</p>
</blockquote>
<p>ā <a href="https://www.joanwestenberg.com/the-case-for-blogging-in-the-ruins/#:~:text=twenty%2E-,When,waffling">Joan Westenberg</a>, The Case for Blogging in the Ruins.</p>
File name completion in Emacs2026-02-05T16:33:00Zhttps://dolzhenko.me/blog/2026/02/file-name-completion-in-emacs/<p><em>The <a href="https://www.emacswiki.org/emacs/Carnival">Emacs Carnival</a> for February is hosted by <a href="https://sachachua.com/blog/2026/01/emacs-carnival-february-2026-completion/">Sacha Chua</a> and its topic is āCompletionā. Below is my entry for this month's carnival.</em></p>
<p>Emacs has a myriad of ways to complete things for you in different contexts.</p>
<p>While the one Iād like to share with you may seem trivial, the feature is so ingrained into my workflow so that I even forgot that itās not part of the core Emacs functionality.</p>
<p>I often switch from IntelliJ IDEA to Emacs (using <a href="/blog/2025/03/launching-magit-from-intellij-idea/">a convenient shortcut</a>) just to use the feature.</p>
<p>The feature provided by a wonderful <a href="https://github.com/minad/cape">cape.el</a> package which extends the Emacsā standard completion-at-point function with a bunch of handy completion functions or Capfs, one of which is <code>cape-file</code>.</p>
<p>Whatās good about it is that it works in any mode, programming or not, and in any context be it a string literal or a comment.</p>
<img src="emacs-cape-file.avif" width="100%">
<p>Here is a snippet from my <code>init.el</code>:</p>
<pre><code>(use-package cape
:ensure t
:init
(add-to-list 'completion-at-point-functions #'cape-abbrev)
(add-to-list 'completion-at-point-functions #'cape-file)
(add-to-list 'completion-at-point-functions #'cape-elisp-block)
(advice-add 'eglot-completion-at-point :around #'cape-wrap-buster))
</code></pre>
Optimising short screencasts using ffmpeg2026-02-09T20:30:00Zhttps://dolzhenko.me/blog/2026/02/ffmpeg/<p>For the previous post <a href="/blog/2026/02/file-name-completion-in-emacs/">on file completion in Emacs</a> I wanted to attach a short screencast demonstrating the feature in action.</p>
<p>I recorded it with macOS's Screenshot app and then converted into gif using ffmpeg, so that it plays automatically:</p>
<pre><code>ffmpeg -i emacs-cape-file.mov emacs-cape-file.gif
</code></pre>
<p>By default, the resolution of the videos recorded by Screenshot is quite high, so no surprise that the output gif turned out to be huge <em>1.4M</em>.
Even though it was only part of the screen recorded, the resolution was <em>1730x1658</em>, which is way more than I needed to publish it on a web page.</p>
<p>To reduce the resolution, we can apply a filter:</p>
<pre><code>ffmpeg -i emacs-cape-file.mov -filter:v scale=768:-1 emacs-cape-file.gif
</code></pre>
<p>This reduced the resolution to <em>768x736</em> and the file size to <em>427K</em>, which is much better but still too big for such a short video.</p>
<p>Another thing we can do is to reduce the frame rate before converting to gif.
In screencast videos there are usually not many things that are changing between frames, so you may not even notice a difference:</p>
<pre><code>ffmpeg -i emacs-cape-file.mov -filter:v fps=5,scale=768:-1 emacs-cape-file.gif
</code></pre>
<p>However, it only reduced the file size by about half: <em>247K</em>.</p>
<p>Converting the screencast using an encoding that supports compression, like H264, for example, would reduce the size to just <em>61K</em>.
But I didn't want it to be displayed as video.</p>
<pre><code>ffmpeg -i emacs-cape-file.mov -filter:v fps=5,scale=768:-1 emacs-cape-file.mp4
</code></pre>
<p>I've been using AVIF format for pictures on this blog for a while.
All of the pictures I attach are automatically converted into several options using <a href="https://github.com/11ty/eleventy-img">@11ty/eleventy-img</a> plugin and included into a page using <code><picture></code> tag.</p>
<p>Avif is a modern image format based on the AV1 video format.
It's <a href="https://caniuse.com/?search=avif">supported</a> by all major browsers now.</p>
<p>What I didn't know is that it also supports animated image sequences with proper compression and ffmpeg supports it too.</p>
<pre><code>ffmpeg -i emacs-cape-file.mov -filter:v fps=5,scale=768:-1 emacs-cape-file.avif
</code></pre>
<p>So with such a simple command I can get a short screencast as an animated picture (just <em>52K</em> in size) I can add to a page using <code><img></code> tag.</p>