# seroperson's website My personal blog with articles and thoughts on various software development topics: Scala, Nix, Jekyll, Bridgetown, JVM things and so on. ## About This is the personal website and blog of seroperson. - Website: https://seroperson.me/ - Email: seroperson@gmail.com - GitHub: https://github.com/seroperson - LinkedIn: https://www.linkedin.com/in/seroperson ## Content This site contains technical articles and notes about software development, focusing on: - JVM technologies (Scala, Java, Kotlin) - Nix and NixOS - Static site generators (Jekyll, Bridgetown) - Web development - DevOps and tooling ## Articles - [Live Reloading on JVM](/2025/11/28/jvm-live-reload/) - 2025-11-28 Implementing an universal JVM live-reloading solution. Getting started with jvm-live-reload project, which enables you to use live-reloading independently from web framework. - [Live Reloading на JVM](/ru/2025/11/28/jvm-live-reload/) - 2025-11-28 Реализация универсального live reloading решения для приложений на JVM. Начало работы с проектом jvm-live-reload, который позволяет использовать live reloading вне зависимости от используемого web-фреймворка. - [Making your JVM application interruptible](/2025/10/20/interrupting-jvm-application/) - 2025-10-20 Learn how to make your JVM application properly handle interruption exceptions (using sbt runner as an example) for a better development experience and better resource management. - [Implementing a JWT-based authorization for zio-http](/2025/09/03/zio-http-jwt-auth/) - 2025-09-03 Hassle-free implementation of JWT-based authorization for a zio-http web server in Scala using pac4j. - [Мультиплеер в Цивилизации 5](/ru/2025/09/01/civilization-5-multiplayer-modding/) - 2025-09-01 Сегодня я хотел бы поделиться некоторыми подробностями о том, как устроена сетевая игра, как всё-таки запустить ее с модами, что с ней вообще не так, и как мы это фиксили. - [Choosing a self-hosted web analytics solution](/2025/08/12/choosing-a-self-hosted-web-analytics/) - 2025-08-12 Migration to self-hosted web analytics: how it went, list of available options and why you need it too. - [Simple Reminder Telegram MiniApp](/2025/06/19/simple-reminder-telegram-miniapp/) - 2025-06-19 The Simple Reminder Telegram MiniApp helps users manage their daily tasks and reminders directly within Telegram. Built with modern web technologies and integrated with Telegram's MiniApp platform for seamless user experience. - [Previewing nix-managed dotfiles](/2025/05/26/previewing-nix-managed-dotfiles/) - 2025-05-26 Implement safe dotfiles previewing using nix-shell or Docker containers to make users able to test them before applying. - [Preparing a project to be vibe-coded](/2025/05/02/preparing-a-project-to-be-vibe-coded/) - 2025-05-02 Learn how to prepare your projects for AI coding tools by providing them with proper context, including Cursor, Windsurf, Cline, Roo Code and others. - [Enhanced Telegram's callback_data with protobuf + base85](/2025/02/05/enhanced-telegram-callback-data/) - 2025-02-05 Learn how to enhance Telegram's Bot API callback_data by securing and making it type-safe using protobuf and base85. - [Работа с callback_data в Telegram-боте с использованием protobuf + base85](/ru/2025/02/05/enhanced-telegram-callback-data/) - 2025-02-05 Описание нового подхода к организации и обработке значений callback_data в Telegram-ботах с использованием protobuf и base85. - [Migration from Jekyll to Bridgetown](/2024/12/04/migration-from-jekyll-to-bridgetown/) - 2024-12-04 Why Jekyll isn't usable anymore? Experience of migration from Jekyll to Bridgetown: the reasons, pitfalls, pros and cons. - [Gaming with v2rayN (or any other VLESS proxy)](/2024/11/11/gaming-with-v2rayn-nekoray-vless/) - 2024-11-11 This article explains how setup your VLESS proxy to not break gaming expirience. Use v2rayN, Nekoray, any XRay + VLESS proxy while playing CS, Valorant, Hunt Showdown or any other game. - [Игра с включенным v2rayN (или любой другой VLESS прокси)](/ru/2024/11/11/gaming-with-v2rayn-nekoray-vless/) - 2024-11-11 Эта статья описывает настройку вашей VLESS прокси так, чтобы не ломать игры. Используйте v2rayN, Nekoray, либо любую другую XRay + VLESS прокси во время игры в CS, Valorant, Hunt Showdown без проблем! - [Building Jekyll website with Nix](/2024/08/03/building-jekyll-website-with-nix/) - 2024-08-03 This article explains how to build a Jekyll website using Nix, covering setup, configuration, and CI integration, while highlighting the benefits of eliminating Docker as a dependency for a smoother development and deployment process. - [Using a heavyweight JS/TS library in a JVM project](/2024/05/20/using-a-heavyweight-js-ts-library-in-a-jvm-project/) - 2024-05-20 Example of advanced usage of GraalJS in a real-world scenario. Tips, tricks and caveats on implementing non-hello-world (TypeScript, modern JS APIs, lot’s of dependencies) JS-on-JVM integration. - [Managing dotfiles with Nix](/2024/01/16/managing-dotfiles-with-nix/) - 2024-01-16 Learn how to use Nix and home-manager to organize and automate your dotfiles, including package installation and configuration. Avoid the pitfalls of manual management and achieve a more streamlined and efficient workflow. - [Implementing a GraalVM custom Feature](/2023/12/05/implementing-a-graalvm-custom-feature/) - 2023-12-05 Implementing a custom feature in GraalVM to enable the use of a reflection-based library within a Scala application. Learn how to overcome GraalVM restrictions and customize the image generation process. Example includes implementing a custom Feature for the htmlunit library. - [Notion + Jekyll images synchronization](/2023/11/16/notion-jekyll-images-synchronization/) - 2023-11-16 Learn how to solve the issue of short-lived URLs for images in Notion + Jekyll synchronization by saving images to your repository. Find out how to monkey-patch the image block handling and ensure that your images are stored in the repository. - [Civilization 5 multiplayer modding](/2023/11/10/civilization-5-multiplayer-modding/) - 2023-11-10 C++ and reverse-engineering for Civilization 5 multiplayer modding. Explore the Vox Populi mod and its multiplayer compatibility. Contribution highlights and challenges faced. Discover the thriving modding community and its impact on the game. - [Link saver bot for Telegram](/2023/09/08/link-saver-bot-for-telegram/) - 2023-09-08 A Telegram bot that stores and manages links, providing a simple interface. Designed for quick storage and syncing between devices. Built with Scala, zio, bot4s/telegram, slick, and flyway. Deployed using GraalVM, nix, GitLab CI, and flux-powered k8s cluster. - [Using Scala with GraalVM](/2023/08/31/using-scala-with-graalvm/) - 2023-08-31 Using GraalVM to build native binaries for Scala applications results in faster startup, improved performance, and a more secure application. Learn how to configure GraalVM with Scala in this comprehensive guide. - [Yet another way to establish Notion + Jekyll synchronization](/2023/08/26/yet-another-way-to-establish-notion-jekyll-synchronization/) - 2023-08-26 My attempt to implement everything in the most sane way. Jekyll + Notion synchronization for managing a Jekyll-powered website with Notion, providing a mobile-friendly CMS alternative. - [For Honor Season 10 stats](/2019/08/01/for-honor-season-10-stats/) - 2019-08-01 Modest analysis of carefully scrapped game data during Season 10 (2019). - [Vim for writing code and prose](/2017/04/15/vim-for-writing-code-and-prose/) - 2017-04-15 Configuring your vim to be able to switch between 'prose' and 'code' modes. ## Notes - [Cursor и WSL](/ru/2025/04/22/running-cursor-with-wsl/) - 2025-04-22 Краткое руководство по настройке Cursor AI для эффективной работы с Windows Subsystem for Linux (WSL). - [Cursor and WSL](/2025/04/22/running-cursor-with-wsl/) - 2025-04-22 A brief guide to setting up and optimizing Cursor AI code editor to work properly with Windows Subsystem for Linux (WSL). - [Making website Telegram Instant View compatible](/2025/01/03/making-website-telegram-instant-view-compatible/) - 2025-01-03 This article shows you how to configure Telegram Instant View for your personal website using undocumented 'tg:site_verification' meta tag. - [Publishing jar artifact via the Central Portal](/2024/11/21/publishing-to-maven-central-portal/) - 2024-11-21 This article introduces you Central Portal and shows how to upload bundle manually in case if your build system doesn't support it or maybe you just don't want to configure it. - [Mastering Windows peformance](/2022/11/28/mastering-windows-performance/) - 2022-11-28 Collection of guides to debloat your Windows, disable unnecessary services and features to improve your working experience. - [vim system-wide clipboard](/2022/11/09/vim-system-wide-clipboard/) - 2022-11-09 Synchronize your vim's and system's clipboards. - [tmux git-root window name](/2022/11/09/tmux-git-root-window-name/) - 2022-11-09 Automatically rename your tmux window according to its' current git directory. - [vim error quit](/ru/2022/11/05/vim-error-quit/) - 2022-11-05 Просто небольшая заметка про недавно обнаруженную мной полезную команду vim. - [vim error quit](/2022/11/05/vim-error-quit/) - 2022-11-05 Just a little note about vim's hotkey I recently found. ## All Tags - ai - bot - bridgetown - censorship - configuration - cpp - cursor - dotfiles - gaming - google-analytics - graaljs - graalvm - hot-reload - interrupt - java - jekyll - jvm - jwt - kotlin - live-reload - miniapp - nekoray - nix - notion - open-source - pac4j - reverse-engineering - ruby - scala - self-hosted - svelte - telegram - v2rayn - vibe-coding - vless - web-analytics - xray - zio - zio-http ## License All content is © 2025 seroperson