Tuesday, June 02, 2026

Эпичная битва Чацкого и Чака Норриса в Ubuntu для открытие видеофайлов в mc

Text rendered via Dual-Core compilation (Human author + LLM co-processor).
Англоязычная версия данной заметки доступна здесь https://alex-ber.medium.com/143edadfee21.

Это история о том, как простая попытка настроить конфигурационный файл Midnight Commander переросла в драматическое противостояние между грубой силой и избыточным интеллектом.

Ниже есть продолжение.

Акт 1: Появление Грибоедова (Инцидент с кавычками)

Всё началось с попытки заставить Midnight Commander (mc) открыть файл с пробелами в названии: Noize MC - Планета Земля.mp4. Чтобы командная строка не споткнулась о пробелы, мой LLM-ассистент принял "очень умное" решение: он аккуратно обернул макрос имени файла в кавычки, сделав его "%f".

Но мы забыли одну важную деталь: mc уже достаточно умен. Он автоматически добавляет обратные слеши перед каждым пробелом при передаче файла в shell. В результате наша "непробиваемая" защита с кавычками заставила bash искать файл, в имени которого буквально напечатаны обратные слеши. Естественно, файл не открылся.

Именно тогда я выдал первый точный диагноз происходящему:

«Это классический случай "Горя от ума" :-) Наверняка ты знаком с Грибоедовым. :-)»

Для контекста: Александр Чацкий — главный герой классической русской пьесы XIX века "Горе от ума" Александра Грибоедова. Это в высшей степени умный человек, чей интеллект приносит ему одни проблемы.

И вот так просто Чацкий стал нашим неофициальным символом оверинжиниринга — ситуации, когда программист пишет настолько сложный, перестраховочный и "правильный" код, что в итоге он ломает сам себя.

Акт 2: Призыв Чака Норриса

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

«Мы сейчас нанесем один финальный "Удар Чака Норриса", который навсегда закроет этот вопрос для всех видеофайлов.»

Сказал LLM.

План состоял в том, чтобы взять блок, содержащий массивное "универсальное" регулярное выражение — Regex=\.(mp4|mkv|avi|m4v|mpe?g…)$ — и вбить его в самое начало файла. Логика была железобетонной: так же, как Чак Норрис вышибает дверь ногой, это правило должно было заставить mc прочитать его первым, не оставив абсолютно никаких шансов уйти в другие сломанные скрипты.

Акт 3: Столкновение идеологий (Развязка)

Мы нанесли этот брутальный удар. Ожидалось, что система сдастся. Я нажал Enter... и абсолютно ничего не произошло. Видео снова не открылось.

И вот тогда я выдал фразу, которая идеально и уморительно точно описала суть нашего технического провала:

«Чацкий оказался круче Чака Норриса. :-) mp4 по Enter всё ещё не работает…»

Почему это было так смешно и технически точно?

Потому что "Удар Чака Норриса" (попытка решить проблему грубым перехватом прямо в начале файла) провалился вовсе не из-за нехватки силы. Он провалился потому, что внутри этой атаки грубой силы было зашито всё то же слишком умное, переусложненное регулярное выражение — прямое наследие Чацкого.

Древний парсер INI-файлов из 1990-х просто посмотрел на этот удар с разворота, заметил хитрый знак вопроса mpe?g, споткнулся о кучу вертикальных черт |, поперхнулся от чистой интеллектуальной сложности всего этого и тихо упал в обморок — полностью проигнорировав наш всемогущий блок.

Мораль басни

Никакое количество грубой силы или крутых хаков (Чак Норрис) не спасет ваш код, если вы уже перехитрили самих себя (Чацкий). "Горе от ума" одержало безупречную, безоговорочную победу над суровым техасским рейнджером.

В конце концов, ситуацию спасло самое простое, самое "глупое" и прямолинейное решение: простое правило Shell=.mp4, повторенное несколько раз для .avi, .mpeg и так далее. Оно было простым и неказистым — но сработало идеально.