Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 1 hour 30 min ago

PostgreSQL сost model для оценки стоимости сброса временных буферов на диск

1 hour 52 min ago

Здесь я представляю результаты работы над первым шагом к внедрению временных таблиц в схему параллельного выполнения запросов в PostgreSQL - тестирование последовательной записи и чтения temp buffers. В системный каталог PostgreSQL добавлены функции измерения операций сброса буферов, и проведены тесты. Для целей оптимизатора выполнена оценка коэффициента стоимости сброса буфера временной таблицы на диск относительно уже существующего DEFAULT_SEQ_PAGE_COST. Выполнена оценка стоимости простого обхода temp buffers (dry-run). Измерения показывают, что последовательная запись примерно на 30% медленнее чтения. На основе этих результатов предложена формула оценки стоимости.

Читать далее

Базовый RAG-компонент для локального семантического поиска на Питоне

2 hours 15 min ago

quad_rag_core — лёгкое Python-ядро для локального RAG, которое автоматически отслеживает изменения в папках, индексирует их в Qdrant и поддерживает эмбеддинги в актуальном состоянии. Изначально проект задумывался как инструмент MCP (Model Context Protocol), но стал основой для любой системы локального семантического поиска.

Зачем это нужно

В процессе работы с кодовой базой через LLM-агентов и при необходимости локального семантического поиска по файлам проекта обнаружилась проблема. Инструменты агентской разработки вроде Kilo Code предоставляют встроенную функцию семантического поиска, но в компании заявляют что в будущем эта функциональность может стать платной. Сразу задумался о том чтобы сделать свою подсистему поиска. Простые запросы к MCP-серверу на поиск и обновление тут не подойдут - система поиска должна иметь полный контроль над контекстом - она должна автоматически узнавать, что файл удалён, функция изменена или добавлен новый документ, без необходимости перезапуска индексации.

От идеи к архитектуре

В начале планировался простой MCP-сервер, который принимает команды поиска и обновления, индексирует текстовые файлы и PDF, использует Qdrant как векторное хранилище и эмбеддит локально.

В ходе проектирования стало понятно: вся логика отслеживания файлов, парсинга, чанкинга и синхронизации с Qdrant — это переиспользуемое ядро, а не часть MCP-протокола.

Так появился quad_rag_core — отдельный Python-модуль, который не знает ничего про MCP или другие внешние интерфейсы, но готов к ним подключаться.

Читать далее

[Перевод] Параметры Python, которые должен знать питонист

Fri, 01/02/2026 - 23:54

Есть числа, которые полезно знать программистам на Python. Насколько быстро добавляется элемент в список? Как насчет открытия файла? Это занимает меньше миллисекунды? Если ваш алгоритм зависит от производительности, какую структуру данных вы должны использовать? Сколько памяти занимает число с плавающей запятой, один символ или пустая строка? Насколько быстр FastAPI по сравнению с Django?

Это перевод недавней работы Michael Kennedy с подробными пояснениями для начинающих питонистов, которых нет у автора.

Читать далее

Прокачиваем LEGO-машинки с помощью Arduino

Fri, 01/02/2026 - 22:32

В этой статье попробуем разобраться, почему игрушечные машинки за условные 1000р ездят лучше, чем серьезные модели из конструкторов с электрикой за 10000р, и что с этим можно сделать, если вы разбираетесь в Arduino.

Читать далее

Растом можно в вебе

Fri, 01/02/2026 - 22:22

Как известно, оливье быть, а раст лучший язык программирования. К сожалению, нанести вред проекту, людям, гретте тумберг легко - тупо не используя лучший язык программирования. Пожалуй, для тривиальной логики можно и без раста, или скажем, вы избрали путь html разработчика, хотя в последнем случае раст все равно найдет вас (в виде красной таблетки) в веб ассембли. Допустим, в проекте вокеры, темплейты, строгое "нет" реакту, манифесты, API для хранения данных в браузере, которое предоставляет доступ к виртуальной файловой системе, частной для источника страницы, и раст. Собрал для вас практики и ошибки, создавая проект, который с удвольствием использую вместо гугл шитс.

Читать далее

kolor-keyboard — рисуем RGB подсветкой клавиатуры флаг языка раскладки

Fri, 01/02/2026 - 22:08

Где-то неделю назад я прочитал статью - Индикация раскладки клавиатуры подсветкой — решение для GNOME. И что-то так вдохновился, что решил сделать что-то подобное для себя, у меня KDE. Начал делать, воспроизвёл подсветку одним цветом достаточно быстро, а потом решил может улучшить и рисовать прямо флаг страны относительно языка раскладки? И кажется получилось не плохо и весело.

https://github.com/jidckii/kolor-keyboard

Читать далее

«Тянем-потянем»: Двигатель Фромана

Fri, 01/02/2026 - 21:05

kenyon.edu

Помнится, как в своё время (давным-давно), был в школе у нас интересный урок по физике, где объясняли принципы работы электродвигателей, где нас с благоговейным трепетом запугивали: «если вы не знаете «правило буравчика» — то не видать вам постройки своего двигателя!» :-) 

Прошли годы, и мне стало интересно, а можно ли создать электродвигатель, к которому это правило имеет весьма отдалённое отношение?

Как оказалось — вполне себе можно и такие двигатели есть, вернее, были! Итак…

Читать далее

ChatGPT 5.2 Pro vs Claude Sonnet 4.5 vs Gemini 3 Pro: кто лучше пишет тексты

Fri, 01/02/2026 - 20:58

Доброго времени суток, «Хабр»!

На дворе 2026 год - с чем вас собственно и поздравляю, хоть и с небольшим опозданием.

Практически любая современная модель способна генерировать более-менее связный текст. Поэтому я решил устроить сравнение последних версий в создании литературных произведений. Рассмотрим: GPT-5.2 Pro, Claude Sonnet 4.5 и Gemini 3 Pro. Попробуем разобраться, какая из предложенных моделей покажет себя лучше других.

Примите стратегически удобное положение, сделайте ставки, а я начинаю сравнение.

Читать далее

Осознанный вайб-кодинг

Fri, 01/02/2026 - 20:55

Личный опыт использования ИИ в разработке: от пет-проектов до рабочих задач. Где вайб-кодинг действительно ускоряет работу, а где превращается в иллюзию скорости и потерю контроля над проектом.

Читать далее

«Новогодний детокс для мозга: почему мы пишем «2025» в 2026-м? (и Matlab-эксперимент)»

Fri, 01/02/2026 - 20:54

Аннотация

Сегодня 2 января 2026 года . Вы снова написали в дате «2025».
Прекратите себя ругать. Вы только что стали участником массового эксперимента по когнитивной инерции. Ваш мозг — не совершенный процессор, а система с памятью и трением, и он физически не может мгновенно переключиться на новую временную парадигму.

Я предлагаю взглянуть на эту ситуацию под необычным углом: как на задачу дискретной математики и теории управления. Резкая смена года — это «ступенчатое воздействие» на систему «мозг». А его реакция — классический «переходной процесс», который можно промоделировать и визуализировать.

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

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

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

Но у календаря — иная природа. Он дискретен. Ночь с 31 декабря на 1 января — не плавный переход, а чёткий рубеж, математическая «ступенька». Наш когнитивный аппарат, настроенный на непрерывность, по инерции «проезжает» эту точку разрыва. Мы совершаем классическую ошибку: продолжаем тренд там, где нужен мгновенный пересмотр.

Читать далее

Д'Ансембур. Практика ненасильственного общения. Конспект книги

Fri, 01/02/2026 - 20:49

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

Читать далее

Мыслить ясно, или Как сбежать из серых будней

Fri, 01/02/2026 - 20:19

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

Многим знакомо ощущение, что вы живёте не своей жизнью, а чужой. Что день за днём вы отбываете срок в тюрьме серых будней, где стены сложены из реактивных привычек, а двери заперты на замки бессознательного поведения. Вас не удерживают решётки — вас удерживает шаблон. Стандартный совет в такой момент — «соберись» или «измени мышление». Но это всё равно что пытаться выломать дверь голыми руками, когда нужны ключи или отмычки.

Именно такие отмычки для самых тугих замков мы и найдём.

Читать далее

Что с рынком труда? Трейсеры индекса headhunter и безработицы

Fri, 01/02/2026 - 20:07

Наблюдая сейчас за рынком труда в России, у меня создается ощущение, что на рынке труда то людей не хватает, то внезапно вакансий становится меньше, то зарплаты начинают вести себя как-то странно.

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

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

Читать далее

[Перевод] Как создавать изображения с помощью Nano Banana: трендовые промпты для генерации глаз и взглядов

Fri, 01/02/2026 - 20:04

На фоне других моделей, часто допускающих ошибки в таких деталях, как точное положение стрелок на циферблате или уровень жидкости в сосуде, Nano Banana Pro демонстрирует качественный скачок в точности.

Ключевое преимущество обновления — отказ от хаотичной генерации в пользу симуляции человеческого творческого процесса. Это позволяет не только справляться со сложной детализацией, но и превращает работу с ИИ из «игры в рулетку» в инструмент с предсказуемым и управляемым результатом.

«Nano Banana» в переводе с хинди означает «делать глаза» или «создание глаз» и относится к искусству создания выразительных, завораживающих глаз в ИИ-изображениях. Эти промпты подходят для создания реалистичных, эмоциональных и красиво детализированных глаз, которые передают глубину, характер и душу в портретах и изображениях персонажей.

Читать далее

Особенности работы с Telegram Mini App (Web App). От биометрии до датчиков

Fri, 01/02/2026 - 19:20

Всем привет! В этой статье я собрал практические фишки работы с Telegram Mini App: что здесь реально проще, чем в обычном вебе, какие возможности Telegram дает из коробки, и что чаще всего вызывает затруднения при разработке.

Читать далее

[Перевод] Меня взломали! Утром мой сервер начал майнить Monero

Fri, 01/02/2026 - 18:01

Недавно моё утро началось с такого вот прекрасного e-mail от Hetzner:

Уважаемый, м-р Джей Сандерс,

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

Также просим вас прислать краткое пояснение с описанием того, как такое могло произойти, и что вы собираетесь в этом отношении предпринять. Если последующие шаги не будут успешно выполнены, ваш сервер может быть заблокирован в любой момент после 2025-12-17 12:46:15 +0100.

К письму прилагалось подтверждение того, что с моего сервера было выполнено сканирование некоего IP-диапазона в Таиланде. Отлично. Никакого вам «Здравствуйте», а лишь заявление о злоупотреблении и угроза отключить всю инфраструктуру через 4 часа.

Читать далее

Нескучное программирование. Ограничения

Fri, 01/02/2026 - 16:58

В языке C++ перегрузки функций и шаблонов исторически были и остаются мощным инструментом для выражения различных реализаций одного и того же интерфейса. Многим перегрузки видятся как удобный способ дать одно имя разным функциям, но на практике понимание того, как компилятор выбирает нужную перегрузку, может стать источником ошибок и недоразумений. Компилятор же руководствуется сложным набором правил, которые мы ему предоставили, учитывает не только типы аргументов, но и порядок специализаций, преобразования типов, const-квалификаторы, шаблонные параметры и многое другое. А ошибки, возникающие при перегрузках, часто трудно диагностировать, поскольку сообщение компилятора может ссылаться на глубоко вложенные детали реализации вместо очевидного исходного кода. Об этом была предыдущая статья...

С введением концептов и ограничений (requires) язык получил возможность управлять этой сложностью на уровне интерфейса. Вместо того чтобы надеяться на магию перегрузки и изощрённые трюки вроде SFINAE, мы теперь можем прямо выражать намерения: какие свойства должен иметь тип, чтобы функция или шаблон были корректны, что позволило перейти от «магии разрешения перегрузок» к декларативному описанию требований к типам.

Давайте теперь поговорим о том, что именно делают ограничения (requires) в современном C++ и почему появление этого механизма стало таким важным шагом в развитии шаблоннов. Тут надо сделать немного шаг в сторону и вспомнить, что исторически шаблоны в C++ были мощным, но довольно опасным инструментом, еще одним языком в языке, на котором можно было сделать почти всё, было бы желание. В итоге компилятор позволял подставить или подхачить любой тип, а проверка того, «подходит ли он на самом деле», откладывалась до момента инстанцирования, что нередко приводило к ошибке далеко от места вызова, а сообщение о непосредственном месте ошибки превращалось в многостраничный отчёт о внутренней кухне компилятора и как он работает с шаблонами. requires меняют эту модель, позволяя описывать ожидания от типа явно и прямо в объявлении функции или класса.

Читать далее

Почему ботокс больше не колют после того, как взломали синаптический перенос

Fri, 01/02/2026 - 16:24

Когда вы старый политик или звезда, то раньше получали инъекцию ботокса и каменное или «восковое» лицо. Так было лет 20. Теперь всё намного лучше, и появился ацетил гексапептид-8, он же — аргирелин.

Ботулотоксин типа А блокирует передачу нервного импульса к мышце и временно её парализует. Если мышца обездвижена долго, то может случиться атрофия и истончение мышечного волокна.

Собственно, поскольку деньги там огромные, пришли хакеры-биохимики и начали взламывать перенос нервного сигнала. Уязвимость нашлась довольно странная, и на базе неё сейчас строится сразу несколько разных вариантов терапии шрамов. Ну и заодно — морщин.

Поэтому добро пожаловать в историю того, как правильно ломать нервы.

Читать далее

Ragex: Гибридный RAG для анализа кода

Fri, 01/02/2026 - 16:17

Я поломался, поломался — и поломался на осколки. Признаю́: железные помощники Т9 действительно могут приносить пользу в разработке. Единственное, что мне не нравилось — то, что весь проект большой и хорошо натренированной модели не скормишь, а значит — неизбежны потери контекста, размывание смыслов и джойсовские галлюцинации.

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

Когда БЯМ научились подключать сторонние MCP-сервера, произошел качественный скачок. Теперь не нужно файнтьюнить модель, можно файнтьюнить буковку «R» из акронима «RAG». Я-то лучше знаю, как правильно извлекать смыслы из моего личного контента. Если речь про код — лучше всего искать правду в AST.

Так и был зачат Ragex — MCP-сервер для семантического анализа кодовых баз с элементами чёрной магии. Проект, понятно, написан на Elixir, потому что ну а на чем еще?

Читать далее

Calcomp: как культовый производитель электроники не смог пережить 90-ые

Fri, 01/02/2026 - 16:06

Компания Calcomp была основана в 1952 году в Калифорнии. Она прославилась как один из ведущих производителей плоттеров и других устройств для автоматизированного проектирования и графики. В 70-80-х Calcomp занимала лидирующие позиции на рынке и ассоциировалась с передовыми технологиями того времени. Рассказываем в нашей статье, почему же производитель электроники не смог пережить 90-ые.

Читать далее

Who's online

There are currently 0 users and 2 guests online.