Создание приложения для изучения языка в полёте | 2025-12-01T15:45:11

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

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

Приятно, что создание приложения с нуля до готового варианта заняло всего около 35-40 минут, а потом я еще какое-то время пользовался им в полёте, без интернета. Так как все переводы всех слов/фраз уже сделались заранее.

Только что развернул его на Render. Тоже приятно, что показать код в работе бесплатно и заняло еще минут 10.

https://readandlearn.onrender.com/

Превосходная мощь NVIDIA RTX 5090: архитектурные горизонты и digital art | 2025-12-01T01:39:52

Nvidia RTX 5090 32Gb! довольный как слон. Поставил ArchLinux и CUDA. Планирую скоро поумнеть в теме прокачки трансформерных глубоких нейросеток и есть масса идей по digital art на иных идеях, чем диффузионные модели.

Производительность: Запустил сейчас тест, модель GPT_OSS_20b_UD_Q4_K_XL при контексте 131072 токенов генерит 350 токенов в секунду. То есть это условно страницу А4 за несколько секунд. Gemma3 27B — 55 токенов в секунду. Qwen3_30B_A3B_Q6_K — 259 токенов в секунду.

Википедия: когда сложность становится барьером | 2025-11-26T01:06:17

У википедии есть одна большая проблема. Ну или у нас с википедией. Если зайти на практически любую страницу википедии об относительно сложном математическом или физическом понятии, часто резко перестает хотеться ее дальше читать. Формально там все верно, но объяснение дается через концепции, часто еще более сложные, чем объясняемая. Кроме этого, там дается часто много лишнего — то, что формально/академически/таксономически находится внутри темы, но по сути «загрязняет» получение первого впечатления.

Эта проблема возникает потому, что у авторов Википедии (часто математиков) приоритет стоит на строгости и полноте, а не на дидактике и понятности.

В англоязычной среде такое иногда называют «Drift into pedantry» (скатывание в педантизм). Статьи часто пишутся экспертами для экспертов, а не для тех, кто пытается изучить предмет с нуля.

Вот возьмем, например, «тензор». Представьте студента, который слышал, что тензоры используются в машинном обучении (Google TensorFlow) или физике, и хочет понять суть.

Чего ждет читатель (интуиция): «Тензор — это таблица чисел (ну или какой-нибудь контейнер данных), которая описывает свойства объекта и правильно изменяется, если мы повернем систему координат»

Что дает википедия: «Те́нзор (от лат. tensus, «напряжённый», по классической раскладке механического напряжения на гранях деформируемого куба, см.иллюстрацию) — раскладка (расположение в пространстве) чисел (компонент), применяемая в математике и физике как особый тип многоиндексного объекта, обладающего математическими свойствами.» Статья сразу же начинает перечислять ранги, ковариантность и контравариантность индексов. Это формально верно, но это «загрязняет» первое впечатление.

Иллюстрация в самом верху подписана вот так: «Механическое напряжение, деформирующее куб с гранями, перпендикулярными осям координат, в классической теории упругости описывается тензором напряжений Коши (англ. Cauchy stress tensor), который связывает 2 индекса: вектор нормали к грани с вектором напряжения Т (сила на единицу площади); имеются 3 направления нормалей и 3 направления компонент напряжения, что даёт тензор 2-го ранга 3×3 — из 9 компонент.»

Формально — ни одной ошибки. Фактически — это стена текста, которая требует знания линейной алгебры, чтобы просто прочитать определение.

Это как если бы вы спросили «Что такое яблоко?», а вам ответили: «Яблоко — это плод растений подсемейства Сливовые (Amygdaloideae) или Спирейные, обладающий эпикарпием, мезокарпием и эндокарпием, часто участвующий в гравитационных экспериментах Ньютона».

С одной стороны, кажется, что с появлением LLM википедия как бы больше не необходима. Есть же условно LLMы типа ChatGPT, которые по сути пересказывают все то, что есть в wikipedia в нужном виде. Но они так делают, потому что их обучили на википедии, причем наверняка именно википедии дали сильно больше веса при обучении, чем всякому шлаку в интернете. Если бы не было википедии в обучающем сете, все было бы сильно сложнее. При этом википедия постоянно редактируется, и LLM и Google используют именно ее при ответах на вопросы.

Поэтому, с одной стороны, мне кажется, что википедии давно пора переходить на генерацию на основе курируемых экспертами данных и упаковывать знания в требуемом формате, например, в виде вопросов-ответов. С другой, теряется вся идея мастер-данных энциклопедии для LLM/RAG.

Парадокс в том, что LLM — это, по сути, единственный «интерфейс», который смог прочитать эти педантичные определения Википедии, «понять» их (через тысячи примеров кода и статей) и перевести обратно на человеческий язык. Википедия стала отличной базой данных для роботов, но плохим учебником для людей.

Механизмы старого телефона: удивительная простота и гениальность | 2025-11-25T00:59:46

Когда я был маленький, я много раз разбирал старые телефоны, и вот только сейчас, к седым годам понял, что никогда не задавался вопросом, как они работали. А работало все очень интересно.

Начнем с номеронабирателя. Телефон подключен к сети двумя проводами. Номеронабиратель — дисковый. Когда вы взводите диск, контакты блокируются, а когда отпускаете — диск возвращается назад и выдает в линию серию прерываний/импульсов. Но как сделали так, чтобы он возвращался с постоянной скоростью (это 10 импульсов в секунду)?

Он работал на основе центробежного фрикционного регулятора. Механика (редуктор) разгоняла ось регулятора до тысяч оборотов в минуту. На оси сидели два грузика с фрикционными накладками (считай тормозами). Центробежная сила прижимала их к неподвижному барабану, создавая тормозное усилие. Это прямой наследник центробежного регулятора Уатта, позволявший механизму работать стабильно независимо от того, как резко вы отпустили диск.

Далее. АТС соединила вас с другом. Вы говорите одновременно, и звук передается и туда, и оттуда по двум проводам — почему двух, а не четыре понятно? Ну хорошо, а вот почему вы не слышите сами себя слишком громко, ведь микрофон шлет звук туда же, откуда его слышит «динамик»?

Я вот быстро ответить не смог. Пошел гуглить. Так вот, оказывается, за это отвечал специальный дифференциальный трансформатор. Там ток от микрофона разветвляется: часть идет в линию к другу, а часть — в «балансный контур» (цепочку из резистора и конденсатора внутри телефона), имитирующую сопротивление линии. Обмотки трансформатора намотаны встречно: магнитные потоки от тока в линию и тока в балансный контур взаимно уничтожаются в той обмотке, что идет к динамику. Инженеры специально настраивали баланс не идеально, оставляя «местный эффект» — тихий звук собственного голоса, чтобы телефон не казался «мертвым». А вот входящий сигнал от друга разбалансировать нечем (с вашей стороны тишина), поэтому он свободно проходит на динамик.

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

А вот динамик был нормальный, электромагнитный. Хотя не совсем. Если бы внутри был просто электромагнит (без постоянного магнита), телефон бы безбожно искажал голос. Электромагнит притягивает железо независимо от полярности тока. Если подать синусоиду (голос), то мембрана притягивалась бы и на положительной полуволне, и на отрицательной. Результат: частота звука удвоилась бы, и вы слышали бы не голос друга, а непонятное высокочастотное жужжание. Постоянный магнит решает эту проблему: Он создает «преднатяг». Мембрана всегда притянута к магниту со средней силой. Когда приходит «плюс» сигнала, магнитное поле усиливается и мембрана прогибается сильнее. Когда приходит «минус» сигнала, поле ослабевает и мембрана отпружинивает назад.

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

Интересно, что принцип старых электромагнитных капсюлей (мембрана из металла + «якорь») используется сейчас в самых дорогих внутриканальных наушниках — гуглите «арматурные наушники» (цена там 500 баксов где-то).

Напряжение в телефонной сети было отрицательное — минус 48/60 вольт. Плюс заземлен, а «живой» провод — это минус. Зачем? Оказывается, это защита от электрохимической коррозии. Кабели лежат в сырой земле. Если бы на жиле был «плюс» (анод), при повреждении изоляции медь растворялась бы (электролиз) и кабель сгнивал. С «минусом» (катод) ионы металла, наоборот, стремятся осесть на провод из почвы, что продлевало жизнь кабеля на десятилетия.

Интерактивное обучение 1986: «Химический тренажер» | 2025-11-23T15:55:06

У меня дома в Коломне есть книжка Химический тренажер 1986 года. Я таких никогда не до и не после не видел.

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

Эти немцы в 1986 году сделали интерактивный учебник еще до того, как это стало модным.

Илья Мечников: Жизнь в борьбе за науку | 2025-11-13T04:53:34

Читал тут биографию Мечникова (не знаю, как меня уж занесло) и подумал, как много может поместиться в одну жизнь. Это не просто учёный, это какой-то сериал:

Его старший брат Иван — тот самый прототип «Смерти Ивана Ильича» у Льва Толстого. А другой брат, Лев, был видным анархистом, социологом и сражался в Италии вместе с Гарибальди. У Мечникова две попытки отправиться на тот свет: первый раз — после смерти первой жены (которую, больную туберкулезом, внесли в церковь на стуле). Он выпил морфий, но выжил. Второй раз — когда его вторая жена Ольга тяжело заболела тифом. Он сознательно привил себе возвратный тиф. К счастью, оба выжили. Зато потом смерть с косой сделала свое только после третьего инфаркта подряд.

Чувак окончил университет в 19 лет экстерном. Его рекомендовал сам И.М. Сеченов на профессорскую должность. Но Мечникова «забаллотировали» (провалили) одним голосом. В знак протеста Сеченов уволился вместе с ним.

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

В Париже его сразу же взял под крыло Луи Пастер (который отец пастеризованного молока), который поддержал его теорию и дал ему лабораторию в своем институте. Там Мечников и проработал 28 лет, став замдиректора.

Во время изучения холеры в Институте Пастера Мечников выдвинул теорию, что не все люди, контактирующие с возбудителем, заболевают. Он предположил, что все дело… (конечно же) в микрофлоре кишечника. Чтобы это доказать, он сознательно выпил культуру с холерным вибрионом. Ничего, пронесло (тебя бы так проснесло, подумал Мечников)

В итоге он получил Нобелевскую премию за открытие фагоцитоза (клеточный иммунитет). А еще он «отец геронтологии» — именно Мечников выдвинул теорию, что для долголетия нужно бороться с плохими бактериями в кишечнике с помощью пробиотиков. Теперь, говорят, геронтологи всего мира пьют 15 мая простоквашу вспоминая Мечникова.

Умер в Париже, его прах хранится в библиотеке Института Пастера.

А еще в английской Википедии он Élie Metchnikoff. Непросто догадаться.

На фото Мечников и Лев Толстой обсуждают иммунологию.

Интерактивная визуализация алгоритмов рекомендаций в новом open source приложении | 2025-11-11T05:23:46

У меня вышло электронное open source приложение к моей книжке Recommender Algorithms! Это «песочница», где можно «погонять» различные алгоритмы рекомендаций с разными настройками, и по каждому алгоритму посмотреть специфичную ему визуализацию, помогающую понять как он работает. Например, для таких алгоритмов как ItemKNN, SLIM или EASE ключевой визуализацией является heatmap, выученной матрицы схожести (item-item similarity matrix). Это позволяет увидеть, какие именно пары товаров модель считает «похожими» (или «влияющими» друг на друга). Для SLIM, например, полезна «Sparsity Plot» , показывающая, что матрица схожести действительно получилась разреженной. Для алгоритмов ассоциативных правил (Apriori, FP-Growth, Eclat) визуализация — это вообще не график, а интерактивные таблицы с найденными «Частотными наборами» (Frequent Itemsets) и сгенерированными «Правилами» (Association Rules) , которые можно фильтровать и сортировать.

Кроме этого, там есть параметрический механизм создания «игрового датасета» — Dataset Wizard. Работает он так — есть шаблонные датасеты, которые описывают items через характеристики. Например, рецепты через вкусы. Или фильмы через жанры. Система генерирует случайных пользователей со случайным набором характеристик из того же набора — причем там много ползунков, позволяющих это распределение сделать более контрастным или сложным. Далее создается уже матрица оценок пользователями айтемов — условно если совпадают характеристики пользователя и айтема, то оценка будет выше, так как «совпадают вкусы» и наоборот, если различаются, то оценка будет ниже. Тут тоже ползунки, добавляющие шум и scarcity — рандомно удаляется часть матрицы. На вход алгоритму рекомендаций характеристики товаров и пользователей не подаются, они скрыты, но они используются для визуализации результатов.

Третьим компонентом приложения является подбор гиперпараметров. По сути, это автоконфигуратор под конкретный датасет. Там используется итеративный подход, который намного эффективнее, чем полный перебор (Grid Search) или случайный поиск (Random Search). Если говорить кратко, система анализирует историю прошлых запусков (trials) и строит вероятностную «карту» (суррогатную модель) того, какие параметры, скорее всего, дадут лучший результат. Затем она использует эту карту, чтобы по-умному выбрать следующую комбинацию для проверки. Этот метод называется Последовательная оптимизация на основе суррогатных моделей (SMBO).

Код свободный, будет еще дополняться новыми алгоритмами и новыми визуализациями.

Ссылочка на код в комментариях.

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

SingleFile: решение проблем с сохранением и обменом веб-страницами | 2025-11-05T17:45:42

Нашел полезный экстеншн к Chrome — SingleFile. Решает вот такую задачу — нужно поделиться страницей из браузера, которая не публичная, например, по iMessage или Telegram. Это не так тривиально сделать. Например, модно записать из браузера на лэптопе файл .mhtml, и его отправить, но открыть его не смогут только получатели на айфоне. Записать в обычный .html тоже не вариант, так как там не сохраняются картинки и стили. Сделать скриншот — попадет только небольшой фрагмент. Поставить экстеншн, который делает длинный большой PNG со всей страницей — этот PNG нельзя открыть на айфоне из телеграмма как минимум, отрисовывается только верх. Печать в PDF тоже не выход — результат очень плохой и очень зависящий от желания разработчиков делать print-friendly version.

SingleFile позволяет создать снэпшот страницы из браузера, обычный .html, который открывается где угодно, со встроенными стилями и изображениями. Но что особенно удобно, перед экспортом можно через WebInspector поудалять все, чем делиться не хочешь, и оно не попадет в финальный .html. У экстеншена свободный код на github, и он никуда ничего не отправляет. Судя по всему, если на странице была динамическая подгрузка через JS, то сохраняется не JS, а результат подгрузки, а JS вырезается.

В общем, удобно, хорошая штука, пользуйтесь.

(Это у меня сегодня интервью вышло на внутреннем портале, и мне нужно было им с семьей поделиться в нашем семейном чатике)

Запуск книги «Рекомендательные алгоритмы»: все, что нужно знать | 2025-10-25T17:36:38

I finally released a book on #RecSys! It’s called Recommender Algorithms, where I’ve compiled over 50 recommendation algorithms with detailed mathematical derivations, thorough explanations, and code examples.

It all started early this spring in Germany, when I attended an ACM conference and sketched out the first structure of the book while analyzing the talks from the RecSys track. And now, just six months later, it has come to life.

Why did I write it? Because neither online nor in print is there a single, accessible resource that deeply explores recommendation algorithms of various types and purposes. There are articles focused on small subsets, but collecting and systematizing approaches—from foundational methods to the very latest—seems to have never been done before. I don’t know if I succeeded, but I’d love to hear your feedback.

Please like & share!

P.S. Click at READ SAMPLE to see the first 40 pages. The table of contents is there as well.

Профессиональные тайны юристов: от «бара» до «Esq.» | 2025-10-14T01:20:33

Оказалось, что фраза «barristers must gain admission to the bar» вообще не про бар и баристов, как я бы подумал, не прочитав, что это, оказывается, про юристов США. “Admission to the bar” — официальное допущение к адвокатской практике (для barristers). А “Barrister” — это адвокат, представляющий клиентов в суде. Есть еще “Solicitor” — юрист, работающий с клиентами и документами.

Исторически “bar” — это буквально перегородка (барьер) в суде, отделяющая место, где сидят судьи и адвокаты, от остальной части зала. “Being called to the bar” — “быть вызванным к барьеру”, то есть быть допущенным к представлению дел в суде. Сегодня “the bar” означает юридическую профессию в целом или адвокатское сообщество.

Собственно, все началось с того, что я увидел титл (professional designation) у чувака «Esq.» и понял, что я ни фига не разбираюсь в этих буковках, которые часто указываются после имени. Их огромное множество, и вы наверняка не раз видели PhD, M.D., или CPA.