Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode

Размышления о природе случайности

Тема случайности меня волнует давно. Существует ли физически объективная случайность, не обусловленная никакими внешними признаками? А если да, то как её определить и почему она существует? Или всё, что мы воспринимаем как случайное, обусловлено лишь нашей мерой незнания? Как только мы получаем новую информацию, случайности становится меньше — просто потому, что мы узнали больше об объективных закономерностях в системе, которые на самом деле не являются случайными, а лишь отражают принципиальную сложность системы.
Read full post gblog_arrow_right

LittleVec — легковесная векторная база данных

В последние годы векторные базы данных стали неотъемлемой частью современных ИИ-проектов: поиск по embedding, RAG-пайплайны, быстрый семантический поиск и многое другое. Однако, если вы когда-либо пробовали развернуть подобную БД — будь то FAISS, Milvus, Qdrant или аналогичные решения — вы наверняка сталкивались с тем, что даже для небольших экспериментов и pet-проектов такие системы требуют довольно мощного железа. В итоге приходится либо платить за дорогой сервер, либо мириться с низкой скоростью и неудобствами.
Read full post gblog_arrow_right

AI git commit generator

В создании коммитов, да и тегов, для гита самое сложное — придумать ёмкое описание, чтобы оно включало все важные аспекты изменений. А ещё это нужно сделать в правильном формате и на грамотном английском. Поэтому в какой-то момент я просто взял и сделал bash-утилиты, использующие AI для этих вещей: gitai для коммитов и gitaitag для тегов. О них и расскажу ниже. AI для коммитов и тегов: gitai и gitaitag Что это такое?
Read full post gblog_arrow_right

Утилиты для извлечения изображений и текста из PDF

В повседневной работе часто возникает задача быстро извлечь изображения или текст из PDF-документов — будь то подготовка презентаций, анализ документов, создание датасетов или автоматизация обработки большого количества файлов. Стандартные графические редакторы или онлайн-сервисы либо требуют ручной работы, либо работают медленно, либо не позволяют автоматизировать процесс. Чтобы упростить и ускорить решение этих задач, я написал набор утилит на C++ — PDF2Images. Они позволяют: Мгновенно извлекать все изображения из PDF-файлов в нужном формате (png, jpg, tiff и др.
Read full post gblog_arrow_right

Получение распределений в задачах регрессии

Приводится алгоритм нахождения функций распределения в качестве решения задачи регрессии. В общем виде задачу регрессии можно сформулировать как восстановление зависимости $\phi: X \to L_1(\Omega)$, сопоставляющей элементам некоторого фазового пространства $X$ случайную величину $\xi \in L_1(\Omega)$. Классический подход к решению задачи регрессии состоит в нахождении среднего значения $E[\phi(x)]$ для каждого $x \in X$. В статье предлагается простой алгоритм оценки распределений случайных величин $\phi(x) \in L_1(\Omega)$. GitHub Мотивация Описание подхода Постановка задачи Построение модели Ограничения Итоговый алгоритм Валидация Эксперименты Заключение Мотивация В анализе данных значительное место занимают два класса задач — задачи классификации и регрессии.
Read full post gblog_arrow_right

Бенчмарк энтропий Шеннона и Реньи на C++

Решил сравнить как различные показатели энтропии Реньи влияют на производительность в плане вычислений. В реальных задачах часто возникает необходимость быстро и эффективно вычислять энтропию для большого количества данных. Для этого важно понимать, как различные показатели энтропиивлияют на время выполнения.

Определение угла наклона текста на сканированных изображениях

При оптическом распознавании текста на сканированных документах качество распознавания зависит от того, наклонён ли текст в документе. У выровненных документов качество распознавания заметно лучше. Соответственно, возникает практическая необходимость в средствах автоматического выравнивания угла наклона текста. В статье предлагается простой, универсальный и достаточно эффективный алгоритм выравнивания наклона текста, основанный на идее минимизации средней энтропии строк и столбцов растрового изображения. Идея Эксперимент Алгоритм Ссылки Идея Базовая идея алгоритма состоит в том, что при повороте текста на сканированном изображении средняя, по строкам и столбцам, энтропия распределения пикселей должна возрасти.
Read full post gblog_arrow_right

Пробуем контрактное программирование С++20 уже сейчас

Пробуем контрактное программирование С++20 уже сейчас В С++20 появилось контрактное программирование. На текущий момент ни один компилятор ещё не реализовал поддержку этой возможности. Но есть способ уже сейчас попробовать использовать контракты из C++20, так как это описано в стандарте. TL;DR Есть форк clang, поддерживающий контракты. На его примере я рассказываю как пользоваться контрактами, чтобы как только фича появилась в вашем любимом компиляторе, вы сразу же могли начать её использовать.
Read full post gblog_arrow_right

Установка сертификатов LetsEncript

Установка сертификатов LetsEncript Можно установить несколько сертификатов для разных доменов. Если по каким то причинам конфиг Nginx не позволяет вычленить домены то в site-avaible нужно поместить временный конфиг, в котором перечислены домены. потом его убрать и всё будет работать Описание установки тут: https://certbot.eff.org/#ubuntuxenial-nginx https://certbot.eff.org/docs/using.html#renewal Установка пакетов: apt-get install software-properties-common add-apt-repository ppa:certbot/certbot apt-get update apt-get install certbot python-certbot-nginx Затем можно устанавливать сертификат Что бы получить список опций certbot набираем certbot –help
Read full post gblog_arrow_right