Feed aggregator

PostgreSQL 19 Beta 4: пять изменений, которые я бы проверил на staging до релиза

Habr.com - Mon, 09/28/2026 - 13:52

24 сентября вышла PostgreSQL 19 Beta 4. До release candidate осталось совсем немного, и на этом этапе уже интереснее смотреть не на длинный список новых возможностей, а на те изменения, которые реально способны поменять повседневную работу backend-команды.

В релизе есть заметные вещи вроде REPACK, нового WAIT FOR LSN, параллельного autovacuum, репликации sequence и pg_plan_advice. Но почти у каждой из них есть важное «да, но». REPACK (CONCURRENTLY) не означает «VACUUM FULL без блокировок». WAIT FOR LSN не превращает асинхронную реплику в синхронную. Планировщик теперь можно подталкивать, но это не делает hint-ы хорошей идеей по умолчанию.

Именно поэтому вместо обзора «50 новых фич PostgreSQL 19» я выбрал пять изменений, которые стоит прогнать на собственном staging до GA. Не чтобы немедленно включить их в production, а чтобы заранее понять, какие старые костыли после обновления можно будет убрать, а где появятся новые точки контроля.

Читать далее

Одна папка вместо разбросанных файлов: как я сделал переносимое хранилище для офлайн-приложения на Flutter

Habr.com - Mon, 09/28/2026 - 13:51

Прошлый раз я писал про то, как заложил в схему БД поля под синхронизацию, которой пока нет. Синхронизации до сих пор нет, зато вышли два обновления: 0.2.0 и 0.2.1. В этой статье про три вещи, на которых пришлось подумать: переносимую папку с данными, бэкапы и импорт из Notion и Obsidian. Nookly — локальное приложение для заметок на Flutter: страницы, блоки, таблицы, канбан, поиск. Данные лежат в SQLite на устройстве, без облака.

Читать далее

Модель предлагает, код решает: проверяемые бизнес-решения на Python с маленькими моделями

Habr.com - Mon, 09/28/2026 - 13:44

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

Читать далее

Я обещал срок по картинке от клиента и регулярно промахивался: как теперь считаю время заказа

Habr.com - Mon, 09/28/2026 - 13:40

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

Я долго именно так и работал. Клиент присылал логотип в мессенджер, я смотрел на него, вспоминал похожие заказы и называл дату. Иногда я попадал в срок, а иногда ошибался, причём промах редко выглядел драматично: не две недели вместо двух дней, а пятница вместо среды. Но для клиента разница ровно в том, что обещание выполнено или нет.

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

Читать далее

Производительность сетевых бэкендов в Linux

Habr.com - Mon, 09/28/2026 - 13:40

Сколько на самом деле стоит путь пакета через ядро Linux, и сколько из этой стоимости снимают io_uring, AF_XDP и DPDK? Собрал библиотеку, в которой один и тот же цикл отправки и приёма работает поверх семи разных путей, и прогнал её на двух очень разных стендах: на домашнем десктопе с двумя 10-гигабитными портами сетевой карты Intel 82599, соединёнными AOC-кабелем, и на паре инстансов AWS c6in.4xlarge.

Читать далее

Почему на Mac «плывёт» прицел: macOS отдаёт мышь раз в кадр экрана

Habr.com - Mon, 09/28/2026 - 13:39

Мышь шлёт отчёт каждую миллисекунду, а приложение на маке получает событие примерно раз в 8 мс: macOS складывает движение за кадр экрана в одно. Замерил, почему из-за этого в шутерах «плывёт» прицел, и разобрался, как читать каждый отчёт мыши через IOHIDManager.

Читать далее

Что сейчас обсуждают российские ИТ-компании: итоги форума РУССОФТ

Habr.com - Mon, 09/28/2026 - 13:38

Развитие отечественного ПО уже нельзя обсуждать только в терминах замены зарубежных решений. Компаниям нужно находить заказчиков, развивать продукты, готовить специалистов и разбираться, где ИИ приносит пользу. Эти вопросы стали основой ИТ-форума РУССОФТ, прошедшего 24–26 сентября в Репино.

Тема форума в этом году - «ИТ-индустрия 2026: между стратегией суверенитета и реальностью рынка». В Репино встретились руководители российских ИТ-компаний, отраслевые эксперты и представители государства. Инфостарт, который вступил в Ассоциацию РУССОФТ в апреле 2026 года, также принял участие в форуме.

Программа охватывала сразу несколько уровней работы ИТ-отрасли. На пленарной дискуссии говорили о состоянии рынка, регулировании, финансировании, импортозамещении и экспорте. В параллельных треках перешли к задачам отдельных компаний: как управлять бизнесом при меняющемся спросе, развивать продукты, собирать команды и применять новые технологии в проектах.

Читать далее

Что произошло с DNS‑трафиком в августе 2026 года?

Habr.com - Mon, 09/28/2026 - 13:36

В августе 2026 года статистика DNS-запросов к Cloudflare внезапно изменилась: резко вырос NXDOMAIN, а к прежнему режиму система полностью уже не вернулась. Я решил проверить, что стоит за этим графиком, и полез в данные root-серверов, APNIC и Cloudflare Radar. В итоге история оказалась заметно страннее, чем просто один большой всплеск.

Разобраться, что произошло

Как я несколько часов гуглил, чтобы потом за 15 минут запустить локальный DeepSeek для Python и SQL

Habr.com - Mon, 09/28/2026 - 13:34

Полгода назад мне понадобился личный AI помощник (знаю...звучит слишком пафосно и мне самому это словосочетание не нравится) для работы на своем ноутбуке на Windows. В основном для достаточно простых вещей. Посмотреть простой Python код, разобраться с Pandas, найти ошибку в SQL запросе или подсказать, как можно переписать кусок кода. Проблема была в том, что рабочий код и данные нельзя было отправлять во внешний контур. Поэтому привычный сценарий с ChatGPT или другим облачным сервисом мне не подходил.

Я знал, что существуют локальные языковые модели, но до этого никогда их самостоятельно не запускал. Казалось, что для этого придется разбираться в Linux, Docker, CUDA и еще десятке технологий....

В итоге все оказалось заметно проще ))))... Я установил Ollama, скачал DeepSeek и получил локального AI помощника, который работает непосредственно на моем компьютере. В этой статье покажу весь путь от установки до первого запроса. Без глубокого погружения в устройство LLM. Просто повторяем несколько шагов и получаем работающую модель через 15 минут.

Сразу оговорюсь. Это не инструкция по построению полноценного корпоративного закрытого контура. Речь именно о локальном запуске модели на своем компьютере. Если у вас есть требования информационной безопасности, их необходимо учитывать отдельно.

Читать далее

Бендер как диавол

Habr.com - Mon, 09/28/2026 - 13:32

Искал скрытые библейские цитаты и намеки в тексте советского романа «12 стульев» с помощью Python и что у меня получилось.

Читать далее

Как ускорить асинхронные генераторы в CPython на 40%, выкинув скрытые исключения

Habr.com - Mon, 09/28/2026 - 13:30

Недавно я гонял бенчмарки на свежей сборке CPython (ветка с tail-call интерпретатором, PGO + LTO, GCC) и снял флеймграф стандартного бенчмарка async_generators из набора pyperformance (рекурсивный обход дерева на 100 000 нод с глубиной вложенности ~17).

Картина на профиле оказалась фееричной: почти треть всего процессорного времени (29%) сжиралась кодом, который вообще не делал никакой полезной работы.

Рантайм создавал, настраивал, а затем тут же уничтожал объекты исключений StopIteration, о существовании которых Python-код даже не догадывался.

Ниже о том, откуда растут ноги у этой проблемы в Си-коде CPython и как пара правок в genobject.c дали ускорение в 1.33x — 1.53x.

Углубиться в кишки CPython

Claude Code сливает ключи в коммиты вдвое чаще среднего: почему хук PreToolUse их пропускает

Habr.com - Mon, 09/28/2026 - 13:29

Агент Claude Code ради одной цифры для статьи запустил платную серию запросов к ИИ-моделям, хотя правило в CLAUDE.md это прямо запрещало: в длинной сессии оно потерялось. Эта ошибка стоила только денег. Ключ в публичном коммите или выкладка без проверки обошлись бы дороже, и такие действия я проверяю хуками — кодом перед каждым вызовом инструмента.

Читать далее

Handbook frontend. Луковая архитектура. Часть 1

Habr.com - Mon, 09/28/2026 - 13:27

Привет, Хабр. Меня зовут Виктор Жабин, я архитектор в Т1. Эта статья — начало большого руководства по созданию луковой архитектуры своими руками.

Архитектурные стили — это, по сути, устоявшиеся схемы организации компонентов в системе. В профессиональной среде они выполняют ту же роль, что и паттерны проектирования в коде: произносишь название — и коллега уже примерно представляет, о чём речь, какие преимущества и недостатки у такого подхода, как устроены данные и что ждать при развёртывании.

Например, когда говорят о луковой архитектуре, сразу становится понятно, как выглядит структура: ядро с бизнес‑логикой в центре, вокруг него слои‑адаптеры (интерфейсы, базы данных, внешние API). Сразу видно, с какими сложностями можно столкнуться и какие стратегии хранения данных здесь чаще всего применяются. Главный принцип — зависимости направлены внутрь, внешние слои зависят от внутренних, но не наоборот. То есть за каждым названием скрывается не просто картинка, а целый набор решений — и удачных, и не самых удачных.

Но если мы говорим о фронтенде, то луковый подход обретает свои особенности. Здесь слои чаще всего выглядят как UI‑компоненты (внешний слой), бизнес‑логика (внутренний слой) и API‑клиенты (внешний слой). И хотя топология остаётся той же — ядро в центре, адаптеры снаружи, — конкретные инструменты и практики сильно отличаются от бэкенда, а принцип изоляции бизнес‑логики от внешних технологий работает так же.

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

Читать далее

Мониторинг SSL сертификатов в Zabbix

Habr.com - Mon, 09/28/2026 - 13:17

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

Читать далее

Как я портировал OpenWrt на роутер от МТС, который OpenWrt скоро будет поддерживать

Habr.com - Mon, 09/28/2026 - 13:15

У многих абонентов МТС дома стоит TP‑Link EX220: провайдер ставил его при подключении. Смотришь на страницу устройства в вики OpenWrt, а там написано, что EX220 v1 поддерживается. Скачиваешь образ, начинаешь прошивать и получаешь молчание в консоли.

Дело в том, что под одним и тем же названием продаются две разные платы. Это история о том, как я это обнаружил, портировал OpenWrt на неподходящую ревизию и отправил поддержку в официальный репозиторий. В конце просьба: ежели у вас лежит такой роутер — помогите довести дело до конца, пж.

Читать далее

«Переходи на Spark», говорили они. Сравнил pandas, Polars, DuckDB и PySpark на слабой машине

Habr.com - Mon, 09/28/2026 - 13:09

Сценарий знакомый: открываешь в pandas файл побольше, ноутбук задумывается, и через минуту всё падает с MemoryError. Следом обычно звучит совет: для больших данных есть Spark. Я решил проверить его цифрами, но не на кластере, а на слабой машине с двумя ядрами и 5,8 ГБ памяти.

Сравнил шесть вариантов: pandas, pandas с pyarrow, Polars, Polars в потоковом режиме, DuckDB и PySpark. Пять типовых операций, объёмы от 6 до 180 млн строк, контроль памяти и автоматическая сверка результатов между библиотеками. Эта сверка по дороге нашла баг, из-за которого Spark терял целый день данных.

Кто сдался первым, кто удивил и почему переход на Spark часто не лучший выход, рассказываю под катом.

Смотреть результаты

Очереди сообщений в Bitrix Framework

Habr.com - Mon, 09/28/2026 - 13:00

Очереди в Bitrix Framework выполняют задачи в фоне. Это помогает разгрузить систему, если какие-то операции требуют много времени или ресурсов.

Разбираем подробнее, как они работают и как их настраивать — на примере.

Читать далее

Аттестация и практика работы по новым приказам ФСТЭК 17 и 117

Habr.com - Mon, 09/28/2026 - 13:00

Привет, Хабр! На связи Алёна, аналитик по информационной безопасности в Selectel. В последние пять лет вышло множество нормативно‑правовых актов от ФСТЭК России, которые кардинально изменили как подход к защите государственных информационных систем (далее — ГИС), так и порядок их аттестации и последующей эксплуатации. 

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

Мы уже прошли этот путь и готовы к размещению у нас клиентских ИС, к которым предъявляются требования по соответствию приказу ФСТЭК России № 117. 

Посмотрим, что изменилось в этой сфере и что необходимо учесть при организации работ. Рассмотрим основные этапы аттестации и их особенности, подчеркнем на что стоит обратить внимание.

Читать далее →

Искал пальмовое масло в 110 тысячах составов и нашёл его в витамине A. Почему поиск по слову врёт

Habr.com - Mon, 09/28/2026 - 12:54

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

Читать далее

Как и зачем я сделал свой маппер

Habr.com - Mon, 09/28/2026 - 12:54

Я не люблю Clean Architecture, не люблю DTO и не люблю мапперы.

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

Поэтому я, конечно же, написал маппер.

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

AI SLOP WARNING. Большую часть кода этой библиотеки написали нейросети, как и 98% текста этой статьи. Я ставил задачи, проверял и исправлял. Если вас это оскорбляет - дальше можно не читать, ничего хорошего вас там не ждёт.

Читать далее

Who's online

There are currently 0 users and 21 guests online.
Syndicate content