LLeo
2026/02/05 - 18
2026/02/03 - Поделитесь новой методичкой
Я наверно что-то пропустил, и есть какая-то последняя методичка, которая объясняет, почему Россия хвалится в СМИ, что прицельно уничтожает энергетику больших городов в чужой стране в морозы, оставляя без тепла и света миллионы гражданских русскоязычных (в том числе) жителей, которых ещё недавно хотела защитить от зверств некого фашистского режима? Это внуки героев, переживших блокаду Ленинграда, придумали бомбить электростанции крупных городов или другие какие-то антифашисты? Подскажите, как сейчас правильно читать такие новости, есть официальная линия партии? Ну вдруг окажется, я не знаю, что мы очищаем богатую минералами новую русскую землю от неправильного фашистского народа? Или как сейчас нужно объяснять детям, что происходит и в чем состоят наши антифашистские задачи и цели? Запутался. 2026/01/27 - А теперь про омериканскую фантастику!
Что это и какое отношение к этому имею я? Это объемная антология, в нее вошли такие авторы, как Jane Espenson (сценаристка: «Игра престолов», «Баффи», «Светлячок», «Девочка Гилмор», «Звёздный крейсер Галактика»), Simon R. Green, Nick Mamatas, знаменитый Alan Dean Foster, Tina Connolly, Zach Shephard, Caitlin Rozakis, Esther Friesner, Gini Koch, Jody Lynn Nye и другие. Ну и мой маленький рассказик «Opacity» (на русском так и назывался «Опасити»). Да, это тот рассказик про шапку-невидимку, который был изгнан с прошлогодней Грелки, поскольку я его отправил анонимно с адреса ibfilipp1982@gmail, а координатор стал подозревать в авторстве фантаста-иноагента Ивана Филлипова, автора знаменитой «Мыши». За прошедший год я, кстати, лично познакомился с Иваном во время поездки по Европе, извинился за емайл и передал ему от него пароль. Не уверен, что он им станет пользоваться, но формально адрес теперь действительно принадлежит не мне, а ему. А значит, паника админа была квантово задним числом фантастически оправданной. В общем, рассказик — типичный неопознанный смешной объект.
И конечно надо сказать спасибо главному человеку, без которого это всё бы не состоялось — известный американский фантаст, переводчик и составитель Alex Shvartsman alexshvartsman.com Он и руководит изданием этой антологии, и мой рассказ перевел на английский тоже он.
Заодно сегодня я узнал, чем закончилась история нашего с ним предыдущего рассказа, который он перевел для журнала «Asimov's» и тот вошел в пятерку финалистов года по голосованию читателей. Конечно первого места он не занял, оно по праву досталось писательнице Наоми Критцер, обладательнице других премий, поздравляю ее с победой. Но вот второе занял. И это изумляет. Поздравляю Алекса Шварцмана, для себя объясняю случившееся его талантом. Зато у меня теперь появилась именная карточка в американской писательской базе sfadb.com/Leonid_Kaganov.
Ну и еще надо сказать, что Alex Shvartsman недавно закончил свой очередной роман «Лучшая из всех возможных планет» — очень смешная космическая книжка со всевозможным стебом над разными штампами и комиксами.
Cейчас на Кикстартере: https://www.kickstarter.com/projects/ufopublishing/the-best-of-all-possible-planets
2026/01/20_1 - доступ к устройствам Bluetooth прямо со страницы браузера
=============== cut ===============
=============== /cut ===============
Современный браузер (а заодно WebView для создания мобильных приложений) всё ближе к людям. Они умеют уже почти все внутренние датчики, NFC, USB/Serial а теперь умеют еще работать с Bluetooth-устройствами. Честно говоря, я вообще никогда раньше с Bluetooth не работал, не считая юзерского подключения наушников. Но случайно заинтересовался темой и оказалось, что приложения для работы с Bluetooth теперь может делать простая страница, и это совсем просто. Например — вот эта, которую вы читаете. Работает это, как минимум, на Андроиде в штатном Chrome прямо из коробки, а также в Crome десктопном под Линукс, если включить настройки, которые по умолчанию в десктопном зачем-то выключены. Сильно не уверен насчет возможности страницы отсканировать всё пространство и найти все устройства, но если задать конкретный UUID своего собственного девайса, то его можно найти и соединиться. Я соорудил за вечер простейший тестик для ESP32: github.com/lleokaganov/bluetooth_web_esp32_test — кому интересно, можете глянуть код или взять уже готовый firmwаre.bin, залить в любую ESP32, и он будет каждые 10 сек заливать на эту страницу пример текстового файла на 20кб. Это просто пример. На выходных я собираюсь добавить нормальное шифрование (так-то протокол bluetooth сам не шифруется и доступен всем радиосканерам в округе) и вкомпилить как опцию в свой фреймворк. А локальный веб-сервер для ESP32 думаю вообще теперь убрать нафиг. Ну потому что нафига это нужно архитектурно? Для доступа к чипу из любой точки мира есть сайт, с которым он держит канал по вебсокету, и там все вебстраницы, обмен только данными. А если чип еще не подключен к местному WiFi и его надо поднять и прописать в систему — тут удобнее Bluetooth, он сразу видит чип, без унизительных плясок с его WiFi-подключением к местной сети. Считаю, что поднимать на чипе свой локальный веб-сервер — устаревшая технология, и я теперь не понимаю, зачем она нужна, только место зря занимает в коде. Но немаловажный вопрос к вам: я тут вставил наверху этого поста диагностику, и если вдруг у вас Windows или MAC и страница пишет, что для вас тоже доступен bluetooth в браузере — сообщите мне эту радостную новость. Потому что по моим сведениям (проверял на Айфоне и Виндоус жены) технология пока доступна только для Chrome Андроида и Chrome Linux.
2026/01/18 - Мыши, как мы вас понимаем. Вы там держитесь. Три месяца - это пустяки.
2026/01/16 - Ехал Трамп куда-то вдаль, на груди была медаль: «За отвагу», «За победу», «За приятную беседу»...
Господи, какая красота! Передайте пожалуйста Дональду Трампу, что я тоже хочу вручить ему свою медаль! Человек я маленький, медаль у меня всего одна — «Медаль имени Чехова». Заслужил я ее не столько литературой, сколько лукавством и шантажом. Эти медальки предлагал когда-то всем подряд Союз Гриценко за ощутимый денежный взнос в кассу. Я запасся попкорном и ответил им на письмо, что я топ-блогер, уже известил читателей о присуждении мне медали, но денег нет, будет неловко теперь писать второй пост — о том, как нынче даже медальку не получить без бабла... Оргкомитет крепко задумался и в виде исключения выдал мне медаль Чехова бесплатно. Считаю, что именно такую медаль Трамп заслуживает гораздо больше, чем я, готов передать! Также имеется памятный значок «Заслуженный поэт Мордовской АССР», но его я совсем не заслужил, его мне подарил Гарик Черский, нашел где-то. А Трамп заслужил. Готов заодно и его передать.
Если у вас тоже есть какие-то медальки, награды или вымпелы — не жадничайте, передавайте всё Трампу, шлите фотки в комменты. Вам без разницы, а старый чванливый индюк будет на седьмом небе от гордости, он на полном серьёзе всё это хавает. Я не знаю, чем народ США заслужил такое лютое позорище на весь мир, но наверняка заслужил. Может, это за Хиросиму наконец прилетело. И давайте ещё в казаки Трампа примем. Нобелевскую по гольфу — и в казаки. 2026/01/15 - 28 лет это вечность, как думаете?
2026/01/14 - «Факап» Харитонова
=============== cut ===============
Опасный Иоанн со своим вечным страшным кинжалом бросает ему сандалии — чтобы к утру починил! Ядовитый, как тухлая рыба, Фома для развлечения своего загадывает ему дурацкие загадки, а если не отгадаешь — «показывает Иерусалим». Спесивый и нудный Петр ежеутренне пристает с нравоучениями, понять которые так же невозможно, как и речи Рабби, но только Рабби не сердится никогда, а Петр только и делает, что сердится да нудит. Сядет, бывало, утром на задах по большому делу, поставит перед собой и нудит, нудит, нудит... тужится, кряхтит и нудит.
=============== /cut ===============
Стругацким можно рисовать неприятных и какающих апостолов святого Евангелия, а Харитонову нельзя мазать дерьмом святых героев Полудня? Почему? Потому что Стругацкие работали над другой задачей, пытались показать в подробностях грязь и несовершенство мира, в котором трудно, очень трудно Иисусу быть богом и воплотить свои божественные идеи? Но нам же могут возразить, что ровно то же самое делает и Харитонов, пытаясь показать, что Мир Полудня утопает в грязи и интригах, а коммунистическая идея в нем не работает? Разумеется, я сам на стороне Нестерова и всех тех, кто обожает Стругацких и кому читать «Факап» оказалось неприятно. Но вдумаемся: по сути-то, в чем разница? И здесь мы возвращаемся к удивительному феномену — кармической ответке писателю от судьба. Ведь помимо ложных сетевых баек в стиле «Дэйл Карнеги повесился от одиночества», существует поистине огромное количество реальных историй. Навскидку: — Аллен Карр, автор книги «Легкий способ бросить курить» умер от рака легких. — Жан-Жак Руссо, автор трактатов о правильном воспитании детей, всех пятерых своих детей сдал в приют. — Карл Маркс, главный обличитель эксплуататоров, капиталистов и буржуев, жил всю жизнь за счет своего друга Энгельса, преуспевающего текстильного фабриканта. — Джордж Оруэлл, главный обличитель тоталитаризма и доносительства, на склоне лет составил «список неблагонадежных граждан», и по его ложному доносу, будто Чарли Чаплин связан с коммунистами, великого режиссера репрессировали и выгнали из США, оставив без родины и киностудии. -- Гуманисты, проповедники морали и борцы с насилием Бертран Рассел и Норман Мейлер в жизни были домашними тиранами, издевались над детьми, бросались с ножом на жен. Уильям Берроуз вообще застрелил жену, но это уже другая история... В общем, Стругацким в этом смысле повезло больше. Центральной темой их миров была идея Учителя, который воспитывает поколение Новых людей, высокоморальных и совершенных. Надо ли удивляться, что ироничная судьба именно их наградила такими персональными учениками и почитателями книг, которые максимально далеки от их идеалов, от уважения к их творчеству, а порой и вообще от базовых норм европейской и христианской морали? Тут речь не о Харитонове, разумеется. А какие вы помните примеры, когда идеалы, которые писатель проповедовал в своих книгах, вступали, будто назло, в полное противоречие с его жизнью и биографией?
2026/01/13 - Дружественный Вечный огонь

Шел давече ночью по улице Варварке в Москве и видел невероятной красоты иконостас посреди города почти у Кремля. Это вам не разгромленный Мост Немцова, это настоящий почти государственный алтарь погибших героев. Мемориал посвящен, как нетрудно видеть, ЧВК «Вагнер», главные места в нем среди флагов с черными черепами занимают вагнеровцы, но собраны здесь и все остальные знакомые имена, о которых мы прежде много лет читали в новостях: все полевые командиры, погибшие в боях, убитые в местных разборках, ликвидированные украинскими или российскими спецслужбами. Все это озаглавлено «Бессмертный полк», хотя это много-много разных полков, которые воевали в разных направлениях и иногда даже друг с другом, а всех их объединяет лишь ненависть к Украине. Здесь командиры батальонов типа Эспаньолы, убитые в боях на территории Украины. Рядом — Моторола, Гиви и Захарченко, погибшие от рук украинских спецслужб (впрочем, в Википедии есть версия, будто Захарченко погиб от рук российских спецслужб). Рядом — несчастный американец Рассел Бентли, который приехал идейно воевать за Донбасс и Россию еще в 2014, и в финале десяти лет военных заслуг был мучительно убит под пытками местными воинами бригады имени того же Захарченко, потому что раз американец, то наверно шпион. Ну и конечно тут сами Пригожин и Уткин — герои, которые воевали за Путина, потом устроили военный поход против Путина, потом им было даровано прощение от Путина, и следом как-то случайно в небе посреди России они были взорваны в своем самолете вместе с невинными пилотами и девочкой-стюардессой — все понимают, кем взорваны, но мемориал рядом с Кремлем стоит. В общем, если вдуматься, производит очень сильное впечатление этот памятник нашей противоречивой эпохи. Все эти герои шли в вечность настолько разными и даже разнонаправленными путями, что если в честь воинов ВОВ зажигают Вечный огонь, здесь правильнее зажечь Дружественный Вечный огонь. 2026/01/11 - Аналогий нет
2026/01/07 - С Рождеством!
Удивительно точно описывает ощущение эпохи. 2026/01/05 - Прошу технических советов
2026/01/04 - Буратино-2026
2026/01/03 - Новогодний опрос
2026/01/01 - С новым годом!
2025/12/24 - Qdrant и lleo.me
Сайт lleo.me стал настолько летописью моей жизни и работы, что сам я постоянно ищу на нем разную забытую информацию. В каком году я впервые ездил в Минск? Нужно ли обжаривать лук с морковкой для моего рецепта рассольника? Где фотка Васи Обломова в Чертаново? Помню, когда-то мне советовали в комментах библиотеки синтеза речи, какие? И каждый раз я лезу искать.
А история системы поиска на lleo.me классическая. Сперва это был тупой поиск подстроки по всей базе заметок и комментариев. С годами база разрослась, ожидание результатов могло занимать целую минуту, иногда вешая сайт. И если ты ставил ключевое слово не в том падеже, поиск ничего не находил. Год назад я привинтил для экспериментов рядом с MySQL базу Postgres и включил там опции полнотекстового поиска. Стало быстро, но хреново. Поэтому лично для себя в админке я оставил опцию прежнего поиска подстроки. И на время прервал эксперименты. Но эпоха нейросетей подарила нам технологии смыслового поиска — когда нейросеть понимает смысл заметки и индексирует какими-то своими цифрами в форме вектора в своем 1000-мерном пространстве. А потом такой же смысловой вектор делается для каждого поискового запроса и база ищет близкие результаты. Проще говоря, на запрос «рассказ, где учитель вырастил слоненка» система должна выдать первым результатом поэму «Про тигренка», хотя совпадений слов нет вообще. Самый модный сегодня для этой цели инструмент — база Qdrant, и я собираюсь ею воспользоваться сперва по рабочим задачам, а затем для своего сайта и конечно для Биноника. Вспомнить стих Иртеньева, Быкова или Седова, не помня точных фраз, — та ещё задача.
Поэтому хочу посоветоваться с вами — кто в теме и имеет опыт.
1) Какие модели советуете именно для русского языка?
2) Какие есть нюансы подготовки букв? Надо ли заменять кавычки на единообразные, удалять знаки препинания или спецсимволы, приводить к нижнему регистру?
3) Какие нюансы представления разных элементов заметки? Нужно ли как-то отдельно размечать заголовок, тело, тэги, дату? Как это лучше делать? В виде промпта «заголовок: ..., эпиграф: ... текст: ...»? А виде JSON? Никак не размечать, валить в кучу? Или там есть специальные опции в API?
4) Что делать с лонгридами, которые не лезут в окно? Следует ли повесть разбивать на куски, и какой длины? Хранить эти куски отдельными векторами, адресуя каждый к своей части текста, типа смысл главы/абзаца? Следует ли отдельно делать для каждой главы смысловую выжимку с целью в конце создать один общий смысловой вектор всей повести?
5) Какие ещё есть нюансы и рекомендации?
Речь именно про тексты на русском языке и опыт создания автономной системы поиска. Понятно, что Гугль и прочие внешние индексаторы открытого контента удобны пользователю, но не решают моих личных и учебно-рабочих задач и не помогают изучить новые технологии. 2025/12/22 - Немножко про работу и бассейны







Фреймворк CFAQ
Я принялся за дело и доработал свой фреймфорк CFAQ для ESP32 (с ESP8266 он тоже должен продолжать работать, но не тестировал пока). Первое, что оказалось: в ESP32 очень и очень плохо с вебсокетами. Либо какие-то совсем громоздкие библиотеки, либо не работают. Более того: судя по всему, на ESP32 вообще нет годного вебсокет-клиента, который способен бегать по wss на сервера за CloudFlare — там какие-то нововведения протоколов, которые сбивают с толку старые библиотеки ESP. Поэтому вебсокет-клиент пришлось писать заново почти с нуля на основе простенькой Socketyee. С wss возиться вообще не стал, решив, что на ESP вся эта беготня с сертификатами «всегда боль», как выражается наш ЧатГПТ. Вместо этого я беру обычный нешифрованный канал ws — прослушивайте. Зато сам трафик шифрую и подписываю современной криптографией 25519 на эллиптических кривых, которая, мягко скажем, посильнее всех этих протоколов https/wss. Результат вышел чудесный — теперь чипы постоянно в сети, и в любой момент авторизованный хозяин с центрального сервера может зайти и выполнить любые действия. В том числе — накидать скрипт прямо на чипе, какие датчики опрашивать, и рисовать любые графики онлайн. Забавная задница приключилась, когда у меня кончилась память: скетч стал занимать 99.6% и не запускаться. Допрограммировался, называется. И понятно, почему такое: всего 4Мб памяти, а я еще хочу обновление прошивки OTA и внутреннюю флешку, да еще натащил во фреймворк вообще всё, что было можно (там же у меня текстовый язык команд, он должен уметь всё), да еще для электроники бассейна подцепил мощный дисплей с развесистой графической библиотекой. Проблему решил временно, откатив саму систему esp32 на чуть более раннюю версию, она не такая громоздкая. Но конечно надо прекратить покупать ESP32 c 4Мб, а брать 8 или 16.
Язык: C++
GitHub: https://github.com/lleokaganov/cfaq
Центральный сервер
Соответственно системе нужен центральный сервер. В нем нужны минимальные протоколы, прием телеметрии от устройств в базу данных, API, разделение доступов и какая-то авторизация по емайлу. Пришлось наконец освоить сервис отправки емайла через smtp2go, а то некоторые криптодрузья мне говорили, будто нет способа отсылать письма от имени своего сайта — мол, либо платить миллион денег Гуглю и богомерзкому Яндексу, либо стыд и грех со сраной поделкой ProtonMail. А оказалось, какой-нибудь smtp2go решает проблему быстро и бесплатно, рекомендую. Сам ws-протокол для данных придумывался довольно мучительно, хотя в итоге оказался прост: ws ходит бинарными посылками, где первые 4 байта — номер адресата, а дальше — шифрованный и подписанный payload. Получая такую посылку (если она не для номера 0 — сервер), сервер тупо пересылает ее адресату, подменяя первые 4 байта номером отправителя. А дальше пусть разбираются получатели, все равно у сервера нету их приватных ключей и заглянуть внутрь трафика он не может. В итоге получилась система, через которую могут обмениваться шифрованным трафиком любые пользователи за двумя NAT — люди, устройства, роботы. Ну и к этому пришлось накидать по-быстрому какое-то подобие фреймфорка, без особого дизайна.
Язык: Rust (ну JS для фреймфорка)
GitHub: https://github.com/lleokaganov/aguardia_server
Криптобиблиотеки
Поскольку самая капризная у нас ESP, долбить крипточасть начал на ней — использовал криптобиблиотеку monocypher. Ок. На сервере после небольших танцев с бубнами поднялась совместимая библиотека Dalek. А вот с фронтендом что-то сразу не вышло. В принципе в своих былых проектах я использовал noble типа как на демке. Но это уже отдельная какая-то вещь в себе и показалась не слишком совместимой с нынешними задачами, поэтому чтобы не париться, я собрал тот же Dalek в виде WASM для браузера. Получилось компактно, удобно, а главное — полностью совместимо с сервером и ESP.
Язык: Rust — WASM
GitHub: https://github.com/lleokaganov/wasm-25519
Мост wsuart
Ну и поигравшись вдоволь с получившейся системой, я задумался: как ее еще можно применить? И последние пару дней занялся побочной демкой — сделал утилитку, которая через вебсокеты и два NAT пробрасывает порт одной машины на другую. Запущенный клиент берет скажем /dev/ttyUSB0, а такой же софт на другой машине, запущенный в режиме slave, создает какой-нибудь /dev/pts/3, который можно точно так же читать-писать. Ну или можно с веб-страницы сервера к своему устройству подключиться и там читать-писать консоль. Вообще мне консоль сама по себе была не нужна. Я планировал из чистого интереса делать всякие звуковые webrtc-девайсики на микролинкусах (например, дистанционно звонить по симкарте), но им-то нужен какой-то канал сигналинга для установки соединения, а чего его искать, если у меня уже всё написано? Так что для начала появилась вот эта утилитка для проброса портов. Ну а в будущем я еще конечно на той же системе шифрованный мессенжер сделаю наподобии того, что делал на позапрошлой работе на DOT-блокчейне, который мессенджеру на фиг не нужен.
Язык: Rust
GitHub: https://github.com/lleokaganov/wsuart
В общем, вот такими был занят нынче скучными технологиями, копаться в которых было так интересно, что даже в дневник месяц не писал почти. 2025/12/20 - Признание
2025/12/18 - Паша Прохоров
Паша был Большим человеком во всех смыслах. Высокого роста, могучей массы, большой мастер на все руки, владелец огромного бизнеса — завода по производству электроники, а может даже сети заводов. Был он человеком большого практического ума, вел бизнес вдумчиво и профессионально, без эмоций. Бизнес построил сам, своим трудом — открыл когда-то с другом крошечную мастерскую по производству электрических жалюзи и вырастил ее до роботизированного завода Nero, производящего электросчетчики и бытовую электронику на всю Беларусь и зарубежье. Но во всем, что не касалось бизнеса, Паша был человеком огромной, просто гигантской души — невероятно азартный, веселый, творческий, увлекающийся всем на свете. Если пел песни — то до утра, если пил — то до донышка, если ел — то стол горой, если садился на мотоцикл — становился активнейшим байкером Минска, если влюблялся — то по уши, если шел в революцию — шел до конца, даже посидел месяц в тюрьме. Мы жили в палатках на фестивале, лазили по заброшкам, учили английский, курили траву, запускали дроны, катались на самокатах, чинили какое-то электронное старьё, красили волосы в разные цвета, — и ему было всё, абсолютно всё интересно, словно он не 50-летний директор огромной фирмы, выделивший выходной между совещаниями, поездками на выставку для подписания договоров, презентацией новой модели умного дома и споров с поставщиками комплектующих. Его эмоции и искренность поражали всех — казалось, он был огромным ребенком, которого радовало и увлекало всё на свете. И конечно он был прекрасным другом — добрым гостеприимным, отзывчивым, искренним. Невероятный шок, не могу поверить в это пока. Паша, спасибо тебе, что был. Яркой бесконечности.






















