Обновить

Бэкенд

Сначала показывать
Порог рейтинга
Уровень сложности

Docker Gitlab + Gitlab Runners на Fedora 44

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели7.2K

Docker Gitlab + Gitlab runners на Fedora 44. Как настраивал у себя и немного каких приколов может быть.

Что посмотреть

Эволюция, а не революция: релиз Elixir 1.20 и почему он вас заинтересует

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели12K

В мире разработки программного обеспечения редко можно увидеть, как зрелый, динамический язык добавляет мощную, статическую систему типов без ущерба для своей философии и существующего кода. 3 июня 2026 года команда Elixir сделала именно это, выпустив версию 1.20. Главное нововведение — постепенная типизация (gradual typing), которая обещает найти в вашем коде «верифицированные баги» (verified bugs — ошибки, гарантированно ведущие к падению в рантайме) без необходимости писать аннотации типов.

Но почему это должно волновать вас, если вы пишете на Python, Java или Go? Команда Elixir поставила перед собой цель, которую многие считают «святым граалем». На практике сочетание всех трёх свойств почти не встречается.

И я считаю, что это отличный повод присмотреться к Elixir, даже если вы никогда не писали на нём ни строчки. Зрелый и интересный язык, работающий на виртуальной машине Erlang (BEAM) и исповедующий функциональную парадигму. Он известен своей отказоустойчивостью и конкурентностью, но, увы, остается малоизвестным языком, и я надеюсь что эта статья заставит вас заинтересоваться Elixir.

Читать далее

Как обучение в ВУЗе изменило мой подход к программированию: написание собственного приложения для моделирования

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели7.6K

История о том, как обучение в высшем учебном заведении вдохнуло вторую жизнь в моё почти забытое хобби.

Читать далее

Coachlight.Avalonia: почему в desktop-разработке до сих пор нет нормального онбординга — и как я решил это исправить

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.7K

Я оказался в этой ситуации на реальном проекте — desktop-приложении на Avalonia. Нужно было объяснить пользователю пять экранов, три из которых со скрытыми боковыми панелями и элементами, зависящими от режима. Я написал онбординг прямо внутри приложения. А потом понял, что написал ровно ту вещь, которой в экосистеме Avalonia не хватает в принципе — и вынес её в отдельную библиотеку.

Читать далее

Реализация TUN GSO в кастомном VPN-сервере на Java

Уровень сложностиСложный
Время на прочтение13 мин
Охват и читатели8.4K

Как одна фича сократила число системных вызовов на TUN-интерфейсе моего VPN почти вдвое — а на bulk-трафике до 44 раз.

В этой статье пойдет речь о том как работает TUN GSO, зачем нужен virtio_net_hdr, какие подводные камни встретились во время реализации и почему эта технология способна заметно снизить нагрузку на VPN-сервер. Статья будет полезна разработчикам VPN серверов и клиентов.

Читать далее

DOFAMINE JAVA BAR

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели9.9K

Я уволился! Все задрало! Поздравляйте! :) Чуть позже расскажу, что да как.

Работу, ксати, найти не сложно, за 2 недели оффер я себе нашел, денег чуть поменьше,успокоился и пошел во все тяжкие.

Скатал в Турцию, залез на Эльбрус(весело, чуть позже расскажу,теперь хочу туда заехать на электровеле), достал жену до печёнок, зафигачил забор на даче и замостил всю дачу плиткой. Но экзистенциальная тоска, деградация и декаданс маячат на горизонте.

Кстати, кому интересно, как дела у моего человека-соседа — никак. Стаья про него тут https://habr.com/ru/articles/857774/. Дом так и не пригоден для жилья. Вчера он сказал, что мечтает в нём успеть пожить в этой жизни, но не факт.

Как дела у меня — я скатываюсь в думскроллинг, промискуитет и алкоголизм.

И я решил найти себе хобби и увлечения. Чтобы прям глаза горели, нужно преодолевать и веселиться. И это — рассада помидоров!

Да шучу. Это будет прям альфа-тестостерон-самец-хобби с блестящими глазами и бессонными ночами. Представляете: вы знакомитесь с девушкой, и она спрашивает вас: «А какие у тебя хобби?» — и ты не говоришь там какие-то бег, сноуборд, оверпрайсовые велики или, боже упаси, падл. Ты говоришь: «На прошлой неделе нам с пацанами было скучно, и мы открыли свою пивнуху».

Да я уже открывал свою пивнуху и ностальгирую по этим моментам. Статья тут https://habr.com/ru/articles/739630/

Я снова хочу краудфандинговый IT-AI-пивбар. Краудфандинг ведь раньше было модно? Почему можно краудфандинг на всякую хипстерскую фигню типа коллекции наклеечек или модного стула, а на простой банальный пивбар или шаурмяной ларек нельзя?

Вступить в проект "Разгром"

Как я строю и строю и строю свой продукт. И что уже вышло

Уровень сложностиПростой
Время на прочтение23 мин
Охват и читатели15K

Если честно, то не ожидал, что просто обзорная статья выйдет такой огромной, самому было лень ее перечитывать, чтобы отредактировать.
Кому интересно узнать, чем я занимаюст по вечерам, можете посмотреть в самом конце статьи. Получилось "водянисто", но хотелось описать, чем я занимаюсь, поделиться с такими же людьми со "стартаперством" головного мозга, найти единомыленников.

Погрузиться

Магазин отдаёт 200 OK, а денег нет: как проверять приём заказов изнутри WooCommerce

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели12K

Классический мониторинг отвечает на вопрос «открылась ли страница». Магазин со сломанным приёмом заказов отвечает на него уверенное «да»: витрина рендерится, корзина считает, 200 OK, сертификат валиден. Не работает только одно — деньги не проходят. Шлюз остался в тест-режиме после работ, обновление сломало оформление, растёт доля сорвавшихся оплат — снаружи всё зелёное.

Разбираем, как проверять приём заказов изнутри WooCommerce: три сигнала из статистики заказов с порогами, нормированными на собственную норму магазина (чтобы не будить владельца двух заказов в неделю), и суточный smoke-прогон конвейера заказа — создать скрытый виртуальный товар, провести заказ по статусам, удалить всё за собой. Без единого письма, без следов в отчётности, без реальных платежей.

Плюс две грабли, на которых мы посидели: письма WooCommerce не глушатся фильтром woocommerce_email_classes (к моменту cron хуки уже развешаны на init — бить надо в woocommerce_email_enabled_{id}), а finally не спасает от PHP-фатала, из-за чего в чужом магазине остаётся висеть служебный заказ. И почему headless-браузер — это отдельный уровень, а не замена этому.

Читать далее

Оповещения о БПЛА через Яндекс Станцию

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели19K

Задача звучала как на полчаса: пусть Яндекс.Станция сама произносит вслух сообщения из Telegram-канала, без обращения к Алисе. По факту — несколько вечеров, потому что Яндекс не даёт из коробки простой возможности “скажи произвольный текст по внешнему событию”. Прошёл два тупика (виртуальные устройства и локальный TTS) и собрал рабочий пайплайн на Home Assistant + webhook. Рассказываю весь путь, включая то, что не сработало — тупики тут поучительнее итога.

Читать далее

Свой AI-прокси на Java: как я пытался подключиться к Gemini

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели13K

Для разработки одного из моих проектов: документа BDoc (Book Document альтернатива устаревшим закрытым бинарным форматами такими как IDML, INDD или Scribus SLA) потребовалась нейросеть, которая может держать контекст очень долго. На данный момент для это цели идеально подходит Gemini, так как контекстное окно у Gemini в 1 миллион токенов. Но есть одна загвоздка, компания Google заблокировала некоторые регионы. То есть запросы от этих регионов не будут доходить до google. Рассмотрев все за и против, было принято решение написать небольшую программу на java - ai-proxy. То есть прокси для нейросетей.

Читать далее

Бенчмаркая foreach и энумераторы: аллокации, которые прятались 10 лет

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели15K

Уважаемые читатели, в этой статье я хочу рассказать о скрытых аллокациях в обычном foreach и представить свои выводы. Тесты сделаны на .net 8, .net 9 и .net 10 одновременно, чтобы было видно, как одна и та же строчка кода ведет себя на разных рантаймах.

Все тесты сделаны с использованием BenchmarkDotNet, полный код представлен на гите, так что каждый может проверить результаты и сделать свои выводы.

Будет три истории, и все три про foreach:

Читать далее

Postgres community events. Не пора ли начать использовать возможности цифровизации?

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели14K

Я участвую во всевозможных конференциях и митапах с 2004 года. И сейчас, как и в эпоху, когда кнопочная Nokia давала людям первый, совсем ещё примитивный, опыт мобильности, такие мероприятия проходят в одном и том же формате: выступил, ответил на вопросы аудитории, презентацию выложили в сеть. Да, сегодня ещё выкладывают видео на YouTube. Иногда остаётся чат с перепиской, заполненный в основном организационными вопросами. И этим примерно всё и ограничивается.

Понимаю, что способы взаимодействия и потребления информации у человека не меняются, наши аналоговые возможности существенно ограничены, и текущий формат, наработанный столетиями, вероятно, оптимален. Однако почему мы ограничиваем себя искусственно и практически не используем возможности информационных технологий?

Если конкретно, то я имею в виду слеующее.

Читать далее

Yet another Rust VPN (TUN-QUIC-TUN)

Время на прочтение10 мин
Охват и читатели15K

На поделке из предыдущей статьи вдохновение не закончилось, решил написать VPN. Был опыт разработки shadowsocks сервера, что не понравилось: под каждое TCP соединение, открываемое каким-нибудь браузеров, VPN клиент открывает отдельное TCP cоединение к серверу, а тот в свою очередь столько же до конечной точки + пришлось руками шифровать/дешифровать payload. Захотелось сделать что-то более простое + самим написать и клиент.

Читать далее

Ближайшие события

LLM говнокодит не хуже людей. Только быстрее

Время на прочтение14 мин
Охват и читатели16K

Полгода назад я начал писать пет-проект практически полностью с помощью LLM-агентов. Первые недели это был чистый дофамин: фичи вылетали за вечер, я один успевал столько, сколько раньше делала небольшая команда. А потом всё начало вязнуть — ровно так, как вязнет любой проект с говнокодом: каждая новая фича ломала две старые, агент правил код «на ощупь», а я тратил время не на продукт, а на разгребание.

Под катом — что я понял и что в итоге сработало: почему LLM деградирует на плохой архитектуре точно так же, как команда людей; почему SOLID, DDD и чистая архитектура не устарели, а стали важнее; и как превратить архитектурные договорённости из «пожеланий в CLAUDE.md» в контракт, который машина не может нарушить. С конкретикой: два конфига deptrac для Symfony-бэкенда и пайплайн разработки с субагентом-ревьювером.

Читать далее

Браузерная игра на Kotlin: практический обзор KorGE

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели9.2K

Посмотрим на движок KorGE для разработки простых игр на Kotlin: спрайты, музыка, мобильное управление, fullscreen, landscape-режим и маленькие футбольные радости от Норвегии

Посмотреть демку

Obsidian как мини-CRM: как я научил канбан-доску наполняться заказами с Kwork без моего участия

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели16K

Всем привет. Думаю, читатели моих двух предыдущих статей уже заметили одну привычку: если какую-то задачу можно хотя бы частично затащить в Obsidian, я попробую это сделать. Если нельзя, скорее всего, тоже попробую, просто потрачу больше времени.

Познакомился я с ним ещё в универе. Сначала зацепили граф связей и нормальная работа с LaTeX. Кто учил билеты по физике, тот поймёт: формулы, ссылки между темами и быстрый поиск реально спасали.

С вышматом вышло хуже. Возможностей встроенного LaTeX мне уже не хватало, поэтому часть билетов я всё равно расписывал в тетради. В общем, Obsidian с вышматом не справился. Я, если честно, тоже не сразу.

Но к тому моменту программа уже прижилась.

Позже я написал для неё отдельный плагин, который разбирал накопившееся хранилище: искал сиротские заметки, проблемы со структурой и неиспользуемые теги. Это было скорее про личную базу знаний и попытку разобраться, зачем я несколько лет складывал заметки куда придётся.

Теперь захотелось проверить, можно ли приспособить Obsidian ещё и к работе.

Читать далее

Объемно-сортовой учет от Честного Знака — опять не для людей

Время на прочтение2 мин
Охват и читатели15K

Что такое ОСУ в Честном Знаке? Я тоже не знал до поры до времени, пока ко мне не обратился клиент с просьбой добавить в выгрузку Контур GTIN. Я взялся за задачу, даже не вникая в предметную область. И потом узнал много нового и скверного...

Читать далее

API gateway и управление API в России 2026: сравнение NEOMSA, Platform V Synapse, MWS Octapi

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели10K

Управление API, или API management, за два года превратилось из узкой инженерной темы в самостоятельное направление корпоративного ПО. После ухода зарубежных платформ многие компании остались с сотнями интеграций и без единого инструмента, который ими управляет. То, что раньше держалось на лицензии одного вендора и нескольких архитекторах, рассыпалось на множество разрозненных подключений.

К июню 2026 года в России доступно несколько зрелых отечественных решений. В этом обзоре разберём три, по которым чаще всего идёт сравнение: NEOMSA APIM от компании Neoflex, Platform V Synapse API Mesh от СберТех и MWS Octapi от МТС Web Services. Все три входят в реестр российского ПО, но задачу управления API закрывают по разному, и понимание этих различий важнее, чем сравнение отдельных функций.

Материал написан как разбор для архитекторов и технических руководителей. Мы опираемся на публичные данные вендоров, отраслевую аналитику и опрос компаний, отмечаем сильные стороны каждого решения и сценарии, в которых оно раскрывается лучше всего. 

Выбор здесь про то, какая задача у вас основная: отдельное управление API или интеграция в целом. Под три типичных сценария удобно держать в голове три ориентира.

Читать далее

Конвейер из 10 агентов без строчки кода: три промпта, 40 минут и прогон при зале

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели13K

Недавно я вёл урок по прототипированию сервисов в Cursor. На рабочую часть ушло максимум 40 минут: 15–20 минут я рассказывал, 20–25 минут мы работали. Из этого времени сам Cursor чистыми отработал минут десять, остальное я говорил, копировал промпты и показывал на экране. На выходе получился репозиторий с прототипом редакционного конвейера для новостного сайта: оркестратор на 10 шагов, 10 ролей‑субагентов, 8 файлов правил, канон артефактов прогона. И тут же, при зале, мы прогнали цепочку целиком: от сырых источников до готового черновика новости и вердикта авто‑судьи. Прикладного кода: ноль строк. Каталога src/ в проекте нет вообще.

Сразу сниму ожидание магии. Мы не собирали работающий сервис: ни бэкенда, ни планировщика, ни деплоя. Прогон исполнили агенты Cursor по правилам, а не какая‑то запущенная система. Целью было показать практику: алгоритм будущей системы можно целиком проработать на уровне правил, до того как написана первая строка кода.

Читать далее

Овцеводческая CRM, Узбекистан и .NET 10: семь инженерных историй с граблями

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели11K

Мы делаем QoyHunter — учётную систему для овцеводческих хозяйств Узбекистана, с витриной животных, доставкой и блогом на соседних поддоменах. С точки зрения бизнес-логики ничего экзотического: CRM как CRM. Экзотика начинается там, где эта CRM встречается с реальностью рынка.

А реальность такая: основной канал пользователей — Telegram, а не браузер; основной язык — не всегда русский (узбекский обязателен, английский — по явному выбору); часовой пояс один (Ташкент, UTC+5, без перехода на летнее время — тоже давало баги, но об этом ниже); а разработка идёт на Windows-ноутбуках без сервера БД под рукой. Из этих фактов вытекает добрая половина решений в статье. Стек: бэкенд на ASP.NET Core (.NET 10), фронт на React + Vite, админка на react-admin, всё за nginx в docker compose.

Читать далее