Готовлю к публикации книжку по Solr&Lucene. Как вы думаете, публиковать такой перевод на амазоне? 🙂
Книжка про алгоритмы и подкапотную инженерию. Я с этого ракурса еще не видел книг, может, будет кому интересна.



Готовлю к публикации книжку по Solr&Lucene. Как вы думаете, публиковать такой перевод на амазоне? 🙂
Книжка про алгоритмы и подкапотную инженерию. Я с этого ракурса еще не видел книг, может, будет кому интересна.



У майкрософт есть одна очень нехорошая штука с Outlook для макоси, которую почему-то никто не пытается исправить. Если у тебя через полчаса встреча, outlook напоминает это окошком следующих встреч, где «засвечивает» эти встречи. Ну в моем случае, что секрета тут никакого, я мог даже в это время экран шарить. Но вообще было бы хорошо, если бы во время screen sharing, да еще и с записью, таких нотификаций не появлялось. Ведь скрин шаринг идет через teams, который входит в один пакет с Outlook.
Но хуже другое. Если на макоси пытаешься ЗАКРЫТЬ это окно нотификации при показе экрана (особенно если запись идет), то всплывает весь аутлук со всеми там письмами. А там уже может быть то, что зрителям видеть не надо. То есть, _закрывая_ окно, засвечиваешь внезапно заголовки почтовых сообщений. Что совершенно неожиданно (ну пока не наступишь на эти грабли, потом уже не неожиданно).

Купил себе AI микрофон, который слушает все вокруг и даёт саммари. Решил для теста разок включить. С ним даже рилсы не посмотришь при выключенном микрофоне на компе, потому что он пытается объединять и обобщать все, что слышит;)
«..Команда методично продвигалась через сложные сопоставления, но неожиданные фразы вроде «Watch the video back if you didn’t notice» и «Don’t be a sucker» создавали тихий, почти поэтический диссонанс — словно вселенная шептала «Let it be» посреди таблиц и тикетов спринтов….»

Я пока работаю над книгой, понял, какого продукта мне не хватает. Это AI-генератор диаграмм по текстовому описанию.
Идея в том, что мастер-документом для диаграммы является текст. Это текстовое описание может быть (и должно быть) довольно подробным, чтобы сгенерированная диаграмма была именно такой, какой ее себе представляет автор. Саму диаграмму не редактируют. То есть, ее можно редактировать — подвигать там кружочки, но в идеале после внесения изменений система должна обновить текст, после генерации из которого получится то, что надвигал юзер.
Результат — диаграмма — должна насколько возможно хорошо соответствовать описанию. Если она не соответствует описанию потому что нельзя условно сделать треугольник с тремя тупыми углами, то система должна сделать максимум возможного и дать словесный ответ, что не получилось. Дальше пользователь может изменить постановку задачи так, чтобы система заткнулась и выдала диаграмму как надо.
Но дальше мы понимаем, что автор мог довольно случайно попасть в то, что ему понравилось своим кривым текстом. И если перегенерить, то получится что-то другое, и не факт, что хорошее. Поэтому —
Можно попросить систему, чтобы она сгенерировала по диаграмме описание диаграммы, по которому, если его засунуть в генератор диаграмм, получится ровно то, по чему это описание сгенерировалось. Да, это описание будет более многословным, и многослойным, но зато будет более надежно описывать результат.
То есть, с этого момента вы уже не работаете с диаграммой. Вы работаете с текстом. Если нужна диаграмма — вы просто компилируете текст в диаграмму и получается как надо. Но вы даже с текстом не работаете напрямую. Вы работаете с этим текстом -описанием диаграммы через LLM. То есть, просите добавить какой-нибудь блок, и меняется текст, но меняется так, чтобы внезапно не поменялось вообще все.
Диаграмма на выходе должна быть в объектной форме, из которой можно уже делать растровую (PNG) или векторную (SVG, EPS).
Также было бы здорово, если бы на вход такой системе можно было бы дать уже имеющиеся диаграммы или диаграммы-шаблоны для того, чтобы она брала оттуда стили и имеющиеся конвенции как отображать что.
В общем, вот такие фантазии. Если у кого есть представления как это реализовать — давайте обсудим 🙂

Я тут какое-то время назад решил книжку написать по алгоритмам рекомендаций. С математикой, примерами кода, репозиторием и т.д. English, of course.
Соответственно, ищу волонтеров-рецензентов, разбирающихся в теме. Также тех, кто имеет опыт с print-on-demand на Амазоне.
Контента уже страниц на 200. Работы еще месяца на три. Рабочее название Recommender Algorithms in 2026: A Practitioner’s Guide. Где-то половина еще сырая, первые страниц 80 уже в 80% готовности.
Сделал себе механизм публикации в HTML и в PDF одним махом. HTML-версия полнофункциональна, с навигацией. Блок навигации отражает текущий раздел, при скролле он сдвигается на тот, что перед читателем. Клик по разделу конечно телепортирует на что кликнули. Все полностью автоматическое.








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

В дополнение к основному продукту для тестирования поиска я разрабатываю на досуге AI Search Agent. Вы даёте ей всего две вводные: сайт, на который нужно перейти, и цель (описанную в коротком абзаце). То есть, эта штука достаточно умная, чтобы совсем не требовать настройки — сайт и цель, а дальше типа я сама.
Как работает: Этот виртуальный агент сам генерирует поисковые запросы, перерабатывает их в зависимости от полученных результатов (например, упрощает), и анализирует, насколько они соответствуют заданному намерению. Если подходящие результаты найдены, агент может добавить товар в корзину и оформить заказ — если это предусмотрено в настройках.
Я об этом уже писал недавно — сегодня просто чуть более найс демо. Будет еще более найс, пока это вытащено из середины разработки, но уже видно, как анализируется страница и есть первые результаты, которые можно использовать.
Агент может использоваться для нескольких целей. Во-первых, это отличный способ создать ground truth — набор запросов с идеальными результатами. Эти данные потом можно применять для тестирования поиска без привлечения часто медленных и дорогих больших языковых моделей (LLM). Во-вторых, он помогает проверить поисковые функции перед запуском для пользователей. В-третьих, агент генерирует реалистичные данные использования, которые нужны для обучения моделей рекомендаций, требующих аутентичных взаимодействий.
Те цветные прямоугольники на видео — это язык взаимодействия агента с ИИ (или LLM). Чтобы понять, куда кликать, система размечает страницу и отправляет ИИ структурированное описание страницы — часто вместе со скриншотом, — чтобы он мог всё проанализировать и принять решение о следующем действии.
В рамках проекта TestMySearch.com я делаю систему «виртуальный покупатель», которая имитирует поведение реального пользователя в интернет-магазине: она начинает с абстрактной цели (например, «что-то яркое и сексуальное для спортзала»), превращает её в конкретный поисковый запрос, выполняет поиск на сайте и в зависимости от результата может либо продолжить просмотр, либо с определённой вероятностью переформулировать запрос, если найденное не соответствует исходной цели; далее система оценивает страницы по соответствию именно изначальной задумке, открывает карточки товаров, случайным образом меняет параметры вроде цвета или размера, принимает решение о добавлении в корзину и оформлении заказа, а также может покинуть сайт, что позволяет за одну ночь сгенерировать множество сессий, похожих на реальные, для тестирования поиска, фильтров и рекомендаций ещё до прихода живых пользователей.
Система полностью автоматическая. То есть, браузер на видео открывается сам, поле поиска там находится само (то есть, от сайта это не зависит), в него вбивается текст, который система придумывает сама на основе той самой изначальной цели, дальше выдаются фасеты и результаты поиска, которые тоже могут быть в совсем непредсказуемом для системы виде — но она все равно понимает где что, и принимает решение о том, перефразировать запрос, выбрать ли фасет или нажать на результат поиска. С какой-то вероятностью виртуальный пользователь покидает сайт. Если запрос перефразируется, например, то этот виртуальный пользователь не повторяет запросы, которые уже приводили к пустым или нерелеватным результатам, то есть, в пределах сессии есть «память».
Я сейчас ну очень много использую Gemini для генерации кода, и вижу скилл, который нужно иметь программистам, чтобы быть успешными на этом поприще. Это умение быстро читать и понимать чужой код, а также умение объяснить, почему генерацию AI нужно переделать и как. Для первого нужно просто очень хорошо знать язык и читать «с листа», потому что времени вдумываться будет мало. Для второго нужно хорошо знать паттерны и понимать, где они применимы, а где — нет. AI еще долго будет лажать с использованием паттернов не к месту.
Кроме этого, человеку все еще нужно будет понимать «как единое целое» на 90% код, который сгенерировал AI, и также успевать находить время на осознание каждой сгенерированной строки кода. Если расслабиться и упустить, то система может родить даже работающий, но очень плохо поддерживаемый код. Например, есть негласное правило, что отдельные файлы должны содержать не так много кода, и если он растет, то нужно делать рефакторинг, разбивая один большой на два или три. Иногда это требует переписывания логики, но это переписывание всегда направлено на одну задачу — упростить поддержку. А AI при переписывании еще и «улучшает» код заодно. И это довольно сложно запретить.
Кроме этого, сама концепция LLM предполагает ограниченность контекстного окна. Которое кодом забивается очень быстро. Чтобы была иллюзия у пользователя, что все работает даже при большом объеме кода, LLM умеют делать предварительную обработку, вытаскивая для процессинга только релевантные куски и откладывая в сторону нерелевантные, чтобы релевантные поместились в реальное контекстное окно. Но этот процесс очень ненадежный, и один раз он срабатывает, а во втором оказывается, что отложили в сторону важное, и в итоге система не увидела всю картину и сгенерировала код, в котором есть функция, очень похожая функции, отложенной в сторону, и вот у нас теперь есть две почти одинаковые.
Кроме этого, сейчас логика распределена между БД и кодом. То есть, данные часто управляют кодом. А данные в LLM просто часто не помещаются. Их слишком много. В итоге, без программистов пока с текущими архитектурами LLM не обойтись. Но вот требования к квалификации программистов только вырастут с LLM, а не упадут. Так что да, джуниорам надо волноваться, но лидам не очень 🙂
В последнем видео о Северной Кореи от Ланькова услышал интересное: владелец устройства не может открыть ни на компьютере, ни на телефоне чужой файл, если тот не подписан специальной электронной подписью от государства. Заинтересовался деталями, накопал для себя и для вас детали.
На телефонах у них модифицированный старый «KitKat» Android (2013), а на компах — модифицированный Fedora линукс, Red Star OS 3, с оболочкой, имитирующей интерфейс macOS от Apple (предыдущая косила под Windows XP). Пишут, что этот выбор дизайна, возможно, был сделан под влиянием того, что лидер Ким Чен Ын был замечен с iMac на своем столе, и видимо, сказал сделайте так же.
Северокорейские смартфоны оснащены скрытыми функциями слежки, которые автоматически делают скриншоты каждые пять минут, сохраняя их в секретной папке, доступной только властям, а не пользователю. По другим данным, скриншоты делаются при старте приложений, видимо, псевдослучайно. Еще есть цензура: если вводишь в любом приложении “Южная Корея” (남조선), система автоматически заменяет это на “марионеточное государство” (괴뢰국가). Сто процентов телефонов, очевидно, китайские, доработанные Китаем под Корею. Кстати, собираемые скриншоты доступны пользователям, но удалить их нельзя. Это приложение Trace Viewer явно создано для того, чтобы напоминать пользователям: всё, что они делают на планшете или телефоне, может быть известно правительству,
Весь медиаконтент в Red Star OS, включая документы, изображения, аудио- и видеофайлы, автоматически помечается водяным знаком с уникальным серийным номером жесткого диска, что позволяет властям отслеживать его происхождение и распространение. То есть, вы не можете сделать фотку и кинуть ее кому-нибудь, потому что она либо просто не откроется на том телефоне, либо, видимо, в редких ситуациях, если шаринг разрешен, в новом месте будут следы как того, кто является автором фотки, так и того, кто является следующим владельцем. Но это недоработано, и прямой обмен файлов все-таки ограничен. Вы можете только использовать ее сами. Разумеется, ничего нельзя удалить с телефона бесследно. Не разрешено иметь более одного устройства на человека (кажется, распространяется на отдельно планшет и отдельно телефон).
Северокорейские мобильные устройства используют строгую систему цифровых подписей (NATISIGN для одобренного правительством контента и SELFSIGN для контента, созданного на устройстве), что означает, что любой файл без этих подписей не может быть открыт в принципе. Система подписи и проверки подписи находится на уровне операционной системы, а не приложений. Это относится вообще ко всем файлам, которые люди создают что на телефонах, что на компах. Я вижу тут огромное число edge cases, но информации мало, а спросить не у кого.
Наказания за доступ к несанкционированным иностранным медиа, таким как K-pop или южнокорейские драмы, исключительно суровы. Если на компакт-диске, вставленном в компьютер с Red Star OS, обнаружен «нежелательный файл», система извлечет компакт-диск, запишет путь к файлу, отобразит графическое предупреждение, сделает скриншоты, а затем принудительно перезагрузит систему через 1000 секунд.
Северная Корея управляет национальной интранет-сетью под названием Кванмён, «огороженным садом», который полностью изолирован от глобального интернета и доступен большинству граждан только для одобренных правительством веб-сайтов и систем электронной почты.
При первом запуске браузера Naenara (основан на Firefox 3.5) домашней страницей по умолчанию является IP-адрес «10.76.1.11». То есть их интернет — это по сути интранет.
