Не вводите читателей в заблуждение. Не “представила технологию”, а “объявила о разработке технологии”, а если точно передать заголовок пресс-релиза Cloudflare, то “…объявила о сотрудничестве с разработчиками основных браузеров для разработки нового протокола PACT…”
Отличная статья, правда, не знаю, насколько описанные архитектурные особенности соответствуют реальности в 2026 году. Но какой же ужасный перевод. Да ещё и не до конца, самое главное не переведено - описание свойства output и то, что любой fiber в конечном итоге имеет какой-то output, но реальное содержимое output имеют только "листья" дерева "волокон".
Не использовал для решения программных задач ни одну другую модель, кроме ChatGPT, но после его использования пришёл к такому выводу: его можно попросить написать какой-то фрагмент кода, но если ты не готов разобраться в том, что он тебе выдал - лучше даже не начинать. Случаев, когда он мне сходу выдал хороший код - по пальцам одной руки пересчитать. В итоговом коде от исходного кода, сгенерированного ChatGPT, у меня как правило остаётся от силы процентов 20. И всё равно, безусловно, время экономит и в работе помогает.
Конкретно с проблемой ненахождения существующих файлов я не сталкивался. Но один комментарий к скриншоту дам, если я что-либо ищу начиная с корневого каталога (чего я обычно стараюсь не делать), я всегда отключаю "Search in symbolic links", иначе фар будет рекурсивно гулять внутри /proc до бесконечности. Собственно говоря, в Far для Windows я тоже при поиске по большому дереву (типа по всему диску, по всем несъёмным дискам) эту опцию всегда отключаю.
Написал инструкцию для CentOS 7: https://github.com/elfmz/far2l/issues/647#issuecomment-1310838699 Скорее всего то же самое (с заменой yum на dnf) подойдёт и для CentOS 8. Если будете пробовать, буду благодарен за любой (положительный или отрицательный) feedback.
О, спасибо большое за подсказку! На данный момент мешает отсутствие у far2l ключа, аналогичного по функциональности ключу -P для mc, но feature request разработчику уже в процессе написания :)
Я решил для себя эту проблему правкой файла panel.ini
[Panel/Left]
...
Folder=$PWD
Пробовал "наобум", но как ни странно, оно заработало, и именно так, как я и расчитывал. Единственный недостаток, если сохраняешь настройки через Shift-F9, приходится править panel.ini заново. Меня вот обратное больше интересует, как после выхода из far2l остаться в последнем рабочем каталоге? Пока не смог разобраться.
Это было основное отличие Far 3 от Far 2, перенос всех параметров из реестра в sqlite'овые таблицы, основная цель, насколько я помню - сделать Far полностью портабельным. Чуть позже добавилось второе радикальное отличие - замена старого макроязыка на LUA движок (первые версии Far 3 всё ещё использовали старый макроязык). Ну а поскольку за основу для far2l были взяты исходники Far 2, решили по-видимому не усложнять и идти стандартным UNIX way, через текстовые конфиги.
Если в wx версии, хотя бы в теории, можно было бы реализовать что-то наподобие такого функционала, как просмотр картинок - например, для Windows-версии есть такой макрос: https://forum.farmanager.com/viewtopic.php?t=8128 - то однозначно нужна. Понятно, что в обычной консоли через терминал такое невозможно, но если десктопная система - Linux, то наверное пусть будет. Может, со временем какой-нибудь API добавите, в графической версии на панели самостоятельно рисовать, и получилось бы что-то подобное написать.
Уже не новая статья, на одном из админских форумов в прошлом году разбирали, процитирую сам себя:
По большей части примеры из статьи крайне редко встречаются в реальных конфигах. Но вот пример с внедрением header'а в результате нормализации переменной $uri заставил меня крепко задуматься. Похоже, имеет смысл переделать часть своих конфигов.
Для тех, кто как и я задумался, что с этим делать и как это поправить, есть такие варианты заново применить urlencode к значению переменной $uri (в приводимых примерах я получаю переменную $safe_uri, которую в дальнейшем использую вместо $uri).
Те, кто используют openresty/lua-nginx-module, могут воспользоваться функцией ngx.escape_uri: set_by_lua_block $safe_uri { return ngx.escape_uri(ngx.var.uri) }
Те, кто его не используют, могут воспользоваться директивой set_escape_uri из модуля set-misc-nginx-module: set_escape_uri $safe_uri $uri;
Ну а те, кто не могут или не хотят использовать дополнительные модули nginx, могут получить то же самое, отрезав аргументы запроса от переменной $request_uri с помощью директивы map: map $uri $safe_uri {
~^([^?]*) $1;
}
Ну и хочу всем напомнить про такой инструмент анализа конфигов nginx, как Gixy: github.com/yandex/gixy
Не вводите читателей в заблуждение. Не “представила технологию”, а “объявила о разработке технологии”, а если точно передать заголовок пресс-релиза Cloudflare, то “…объявила о сотрудничестве с разработчиками основных браузеров для разработки нового протокола PACT…”
Отличная статья, правда, не знаю, насколько описанные архитектурные особенности соответствуют реальности в 2026 году. Но какой же ужасный перевод. Да ещё и не до конца, самое главное не переведено - описание свойства output и то, что любой fiber в конечном итоге имеет какой-то output, но реальное содержимое output имеют только "листья" дерева "волокон".
У вас в статье в разделах 2 (Rough) и 3 (Medium) ссылки для сравнения на imgsli.com перепутаны местами. Поправьте, пожалуйста.
Скорее всего да, Cloudflare в этом плане как правило ведёт себя честно:
Прекрасный перевод, ничего не скажешь. Самое полезное в статье - это ссылка на оригинальный документ.
Не использовал для решения программных задач ни одну другую модель, кроме ChatGPT, но после его использования пришёл к такому выводу: его можно попросить написать какой-то фрагмент кода, но если ты не готов разобраться в том, что он тебе выдал - лучше даже не начинать. Случаев, когда он мне сходу выдал хороший код - по пальцам одной руки пересчитать. В итоговом коде от исходного кода, сгенерированного ChatGPT, у меня как правило остаётся от силы процентов 20. И всё равно, безусловно, время экономит и в работе помогает.
Конкретно с проблемой ненахождения существующих файлов я не сталкивался. Но один комментарий к скриншоту дам, если я что-либо ищу начиная с корневого каталога (чего я обычно стараюсь не делать), я всегда отключаю "Search in symbolic links", иначе фар будет рекурсивно гулять внутри
/procдо бесконечности. Собственно говоря, в Far для Windows я тоже при поиске по большому дереву (типа по всему диску, по всем несъёмным дискам) эту опцию всегда отключаю.Дополнительно в той же ветке на обсуждения на GitHub:
https://github.com/elfmz/far2l/issues/647#issuecomment-652671363
Написал инструкцию для CentOS 7:
https://github.com/elfmz/far2l/issues/647#issuecomment-1310838699
Скорее всего то же самое (с заменой yum на dnf) подойдёт и для CentOS 8. Если будете пробовать, буду благодарен за любой (положительный или отрицательный) feedback.
Хотите собрать именно с wx, GUI-вариант? Я себе собираю под CentOS 7, но только TTY-вариант, без GUI, если хотите, могу поделиться рецептом.
Вот-вот, не хватает варианта типа "Хоть и страшно, но всё-таки да" :)
О, спасибо большое за подсказку! На данный момент мешает отсутствие у far2l ключа, аналогичного по функциональности ключу -P для mc, но feature request разработчику уже в процессе написания :)
Я думал, что бы ответить, но варианта лучше придумать вряд ли бы смог. Пять баллов! [плачет]
Я решил для себя эту проблему правкой файла
panel.iniПробовал "наобум", но как ни странно, оно заработало, и именно так, как я и расчитывал. Единственный недостаток, если сохраняешь настройки через Shift-F9, приходится править
panel.iniзаново. Меня вот обратное больше интересует, как после выхода из far2l остаться в последнем рабочем каталоге? Пока не смог разобраться.Это было основное отличие Far 3 от Far 2, перенос всех параметров из реестра в sqlite'овые таблицы, основная цель, насколько я помню - сделать Far полностью портабельным. Чуть позже добавилось второе радикальное отличие - замена старого макроязыка на LUA движок (первые версии Far 3 всё ещё использовали старый макроязык). Ну а поскольку за основу для far2l были взяты исходники Far 2, решили по-видимому не усложнять и идти стандартным UNIX way, через текстовые конфиги.
Если в wx версии, хотя бы в теории, можно было бы реализовать что-то наподобие такого функционала, как просмотр картинок - например, для Windows-версии есть такой макрос: https://forum.farmanager.com/viewtopic.php?t=8128 - то однозначно нужна. Понятно, что в обычной консоли через терминал такое невозможно, но если десктопная система - Linux, то наверное пусть будет. Может, со временем какой-нибудь API добавите, в графической версии на панели самостоятельно рисовать, и получилось бы что-то подобное написать.
map $request_uri $safe_uri {
~^([^?]*) $1;
}
По большей части примеры из статьи крайне редко встречаются в реальных конфигах. Но вот пример с внедрением header'а в результате нормализации переменной $uri заставил меня крепко задуматься. Похоже, имеет смысл переделать часть своих конфигов.
Для тех, кто как и я задумался, что с этим делать и как это поправить, есть такие варианты заново применить urlencode к значению переменной $uri (в приводимых примерах я получаю переменную $safe_uri, которую в дальнейшем использую вместо $uri).
Те, кто используют openresty/lua-nginx-module, могут воспользоваться функцией ngx.escape_uri:
set_by_lua_block $safe_uri { return ngx.escape_uri(ngx.var.uri) }
Те, кто его не используют, могут воспользоваться директивой set_escape_uri из модуля set-misc-nginx-module:
set_escape_uri $safe_uri $uri;
Ну а те, кто не могут или не хотят использовать дополнительные модули nginx, могут получить то же самое, отрезав аргументы запроса от переменной $request_uri с помощью директивы map:
map $uri $safe_uri {
~^([^?]*) $1;
}
Ну и хочу всем напомнить про такой инструмент анализа конфигов nginx, как Gixy:
github.com/yandex/gixy