<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Alexey Haidamaka</title>

    

    <link>https://blog.gdmka.me/</link>
    <description>Recent content on Alexey Haidamaka</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <copyright>© 2021 - 2025 Alexey Haidamaka</copyright>
    <lastBuildDate>Mon, 29 Dec 2025 18:00:27 +0100</lastBuildDate>
    
	<atom:link href="https://blog.gdmka.me/index.xml" rel="self" type="application/rss+xml" />
    
    
    
    <item>
      <title>Running Cloud LLMs Inside LM Studio</title>
      <link>https://blog.gdmka.me/running-cloud-llms-inside-lm-studio/</link>
      <pubDate>Mon, 29 Dec 2025 18:00:27 +0100</pubDate>
      
      <guid>https://blog.gdmka.me/running-cloud-llms-inside-lm-studio/</guid>
      <description>
        
          
          
          
        

        
          Recently, I’ve been relying heavily on LM Studio in my daily workflow, primarily for local embedding model inference. Agentic AI assistants use embedding models together with a vector database to perform semantic search over a project’s code.
This setup is similar to what projects like DeepWiki1 do, but it runs entirely on local hardware. After indexing the codebase and storing the embedding vectors in Qdrant, I can start talking to the code in natural language.
          
        
        </description>
    </item>
    
    
    
    <item>
      <title>Attempts at immutability with dataclasses in Python</title>
      <link>https://blog.gdmka.me/attempts-at-immutability-with-dataclasses-in-python/</link>
      <pubDate>Fri, 08 Nov 2024 14:23:41 +0100</pubDate>
      
      <guid>https://blog.gdmka.me/attempts-at-immutability-with-dataclasses-in-python/</guid>
      <description>
        
          
          
          
        

        
          Disclaimer: This article was originally written on Jan 3 / 2023 and wasn&amp;rsquo;t published before.
As you may know, Python follows the naming convention borrowed from C, which uses all uppercase letters for constants. Therefore, if you see a piece of code like this, it’s intended to define a constant.
MAX_AGE: int = 60 In C, there are at least two ways to define constants: one using the const keyword and the other using the #define preprocessor directive.
          
        
        </description>
    </item>
    
    
    
    <item>
      <title>What&#39;s it like to get DDoS&#39;d</title>
      <link>https://blog.gdmka.me/whats-it-like-to-get-ddosd/</link>
      <pubDate>Tue, 19 Oct 2021 19:39:39 +0300</pubDate>
      
      <guid>https://blog.gdmka.me/whats-it-like-to-get-ddosd/</guid>
      <description>
        
          
          
          
        

        
          My previous post has generated certain traffic but last Saturday was different — the blog experienced an unprecedented traffic surge. &amp;ldquo;This blue cone was a DDoS&amp;rdquo; I said to myself looking at the dashboard.
Clearly, ~4.8K legitimate users cannot generate 5GB of egress traffic in a short timeframe like this.  Normally, the Firewall Event section is crystal clear, but this time it had hundreds of thousands of events.  Unfortunately I wasn’t able to pinpoint the exact attack start time, because it’s impossible to jump to the last page on a free plan in a single click.
          
        
        </description>
    </item>
    
    
    
    <item>
      <title>Why I host my blog on Cloudflare Pages</title>
      <link>https://blog.gdmka.me/why-i-host-my-blog-on-cloudflare-pages/</link>
      <pubDate>Mon, 11 Oct 2021 23:12:32 +0300</pubDate>
      
      <guid>https://blog.gdmka.me/why-i-host-my-blog-on-cloudflare-pages/</guid>
      <description>
        
          
          
          
        

        
          My initial goal was to write a post comparing two major hosting offerings for a static tech blog at zero cost. Turns out, there’s an abundance of «Github Pages vs Cloudflare Pages» posts on the web. So the premise shifted to why do I pick Cloudflare Pages.
Google Trends comparing Cloudflare Pages with Github Pages  According to Google Trends graph, Github Pages ranks 77 against 5 points of interest for Cloudflare Pages.
          
        
        </description>
    </item>
    
    
    
    <item>
      <title>Adding search to a Hugo blog</title>
      <link>https://blog.gdmka.me/adding-search-to-a-hugo-blog/</link>
      <pubDate>Thu, 12 Aug 2021 11:11:47 +0300</pubDate>
      
      <guid>https://blog.gdmka.me/adding-search-to-a-hugo-blog/</guid>
      <description>
        
          
          
          
        

        
          First thing to do after a static blog is set up isn&amp;rsquo;t just filling it with posts but taking care of how it gets discovered. Hugo doesn&amp;rsquo;t provide search out of the box but lists several options1. One of them is hugo-elasticsearch2 looks promising but it requires a running Elasticsearch instance which is a bit of an overkill.
hugo-lunr3 is a nice client side search solution, the downside is the routine of rebuilding index manually on every post or edit yet I was concerned about how it performs over time when the index grows to contain megabytes of data.
          
        
        </description>
    </item>
    
    
    
    
    
    
  </channel>
</rss>