Ласкаво просимо

На мій персональний сайт. Тут ви можете знайти інформацію про мене та мою професійну діяльність у сфері програмної інженерії.

Recent Posts

Реконструкція зв'язків сутностей у схемах баз даних за допомогою PlantUML та LLM

Моя стаття про реконструкцію зовнішніх ключів (або пошук відсутніх) у SQL базах даних за допомогою sqlant та LLM була опублікована в журналі csecurity.kubg.edu.ua. Було б гарною ідеєю включити цей підхід в утиліту, яка працює з базами даних.

December 8, 2025

Оптимізація процесу створення ER-діаграм за допомогою PlantUML

Моя стаття “Оптимізація процесу створення ER-діаграм за допомогою PlantUML” була опублікована у збірнику праць 7-го воркшопу для молодих науковців з комп’ютерних наук та програмної інженерії (CS&SE@SW 2024), де я описую використання PlantUML та sqlant Стаття: https://lnkd.in/dCi2xPr5 Відеопрезентація

February 10, 2025

Збірка та розгортання Rust бінарних файлів на різних дистрибутивах Linux

Екосистема Rust має численні платформи та велику документацію для підтримки функцій крос-компіляції. Але чи працює це так, як очікується? Що ж, якщо ваш бінарний файл має мало залежностей від спільних бібліотек, то, швидше за все, так. Компіляція для x86_64-unknown-linux-musl значно збільшує ймовірність того, що ваш бінарний файл працюватиме на різних дистрибутивах Linux. Однак реальність у production може бути зовсім іншою. Ми все ще стикаємося з dependency hell, і багато Rust крейтів залежать від спільних бібліотек, які можуть мати різні назви та шляхи. ...

February 11, 2024

Покращення рутини розробки програмного забезпечення. Локальне налаштування бази даних.

Майже всі розробники програмного забезпечення використовують бази даних у своїй повсякденній роботі. Незручності можуть виникати, коли потрібно працювати з різними типами баз даних або різними версіями. На щастя, існує загальний спосіб роботи з усіма популярними базами даних. Передумови: Linux, Docker. 1. Запуск сервера бази даних та інструменту управління БД За допомогою docker ви можете запустити будь-яку базу даних без проблем з установкою. Візьмемо для прикладу базу даних PostgreSQL. Запуск ✦❯ docker run --name some-postgres -e POSTGRES_PASSWORD=pswd -e POSTGRES_USER=user -e POSTGRES_DB=pdb -d --network=host postgres:15.3 70c2e363683fe9de108642e5f7140cd03d2ab0b117c8a3520c7a8ce6e7c10cca Після цієї команди у вас має бути запущений сервер БД на вашому localhost зі створеним користувачем: user та базою даних: pdb на порту 5432. Для перевірки можете використати telnet: ...

November 17, 2023

Мінімальне налаштування: конфігурація Rust дебагера в Neovim

Передумови Ви знаєте, як налаштовувати та конфігурувати плагіни neovim. Ви використовуєте UNIX-подібну ОС Покрокова інструкція Встановіть наступні плагіни neovim nvim-dap nvim-dap-ui -- Приклад з packer.nvim use("mfussenegger/nvim-dap") use { "rcarriga/nvim-dap-ui", requires = {"mfussenegger/nvim-dap"} } Встановіть vscode-lldb Завантажте файл, специфічний для вашої системи https://github.com/vadimcn/vscode-lldb/releases Розпакуйте його утилітою unzip. У моєму випадку я розпакував у ~/Sources/lldb Результат виконання unzip codelldb-x86_64-linux.vsix у ~/Sources/lldb: Виконуваний файл codelldb доступний за шляхом: ~/Sources/lldb/extension/adapter Налаштуйте nvim-dap у вашому init.lua local dap = require("dap") dap.adapters.codelldb = { type = 'server', port = "${port}", executable = { -- Змініть це на ваш шлях! command = '/home/kurotych/Sources/lldb/extension/adapter/codelldb', args = {"--port", "${port}"}, } } dap.configurations.rust= { { name = "Launch file", type = "codelldb", request = "launch", program = function() return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') end, cwd = '${workspaceFolder}', stopOnEntry = false, }, } require("dapui").setup({}) Відкрийте будь-яку rust програму та виконайте в командному рядку neovim :lua require("dap").toggle_breakpoint() там, де хочете зупинити програму Скріншот Запустіть :lua require("dap").continue() у командному рядку neovim для початку відладки Скріншот Запустіть :lua require("dapui").open() Скріншот Ви можете переміщатися по вікнах відладки за допомогою миші. Виконайте :lua require("dapui").close() - щоб закрити всі вікна відладки Гарячі клавіші local dap = require('dap') vim.keymap.set('n', '<F5>', function() dap.continue() end) vim.keymap.set('n', '<F10>', function() dap.step_over() end) vim.keymap.set('n', '<F11>', function() dap.step_into() end) vim.keymap.set('n', '<F12>', function() dap.step_out() end) vim.keymap.set('n', '<Leader>b', function() dap.toggle_breakpoint() end) vim.keymap.set('n', '<Leader>dl', function() dap.run_last() end) vim.keymap.set('n', '<Leader>df', function() require("dapui").float_element('scopes', { enter = true }) end) Додаткова інформація Ви можете знайти у репозиторіях плагінів nvim-dap та nvim-dap-ui ...

February 20, 2023

Технічний опис цього сайту

Технології Цей сайт розміщено на github pages та побудовано за допомогою hugo з темою hugo-PaperMod. Hugo Я обрав Hugo, тому що він швидкий, і мені подобається простота наповнення контенту сайту за допомогою Markdown. Наявність i18n з коробки також є великою перевагою цього інструменту. Github pages Забезпечує готовий до використання CI/CD процес. Це означає, що мій сайт автоматично оновлюється після коміту в репозиторій.1 Витрати Це коштує мені лише ціну домену kurotych.com Корисні посилання Розміщення Hugo на Github GitHub Pages з кастомним доменом Namecheap Вам потрібно мати налаштований workflow у вашому репозиторії. Перевірте gh-pages.yml ↩︎ ...

February 16, 2023