Re: «Единственный мне известный логичный язык - это Tcl» (was: Firefox неправильно восстанавливает запомненную при выходе позицию)
On Sun, Sep 29, 2019 at 08:23:47PM +0300, Dmitry Alexandrov wrote: > Victor Wagner wrote: > > В Sun, 29 Sep 2019 12:16:57 +0300 Eugene Berdnikov пишет: > >> Короче, Bourne shell это тяжкий груз наследственности. > > > > Любая система, получившаяся сколько-нибудь широкое распространие - это > > тяжкий груз наследственности. > > > Единственный мне известный логичный язык - это Tcl > > «Схема» предельно логична. Да и вообще, пожалуй, любой Лисп будет пологичнее > Тикля. "Что мне нравится в Тикле, так это Тикей" :-) (Вспоминая дискуссию, начатую RMS...) После знакомства с обоими Tcl/Tk и Scheme, я выбрал второй вариант (Tk мне очень понравился, всё же). Но, ёклмн, почему-то люди очень пугаются, когда скобка ставится не перед первым параметром, а перед названием функции, и нет запятых и точек с запятой... "Просто кош(мар);[1] какое-то..." [1] (Кош (ка) Мар (уська)) -- Vladimir (λ)επτόν EDA — https://github.com/lepton-eda
Re: Firefox неправильно восстанавливает запомненную при выходе позицию
On Sun, Sep 29, 2019 at 10:50:02PM +0300, Andrey Jr. Melnikov wrote: ... > PS: Спор то ниочем. Из всех шеллов, которые есть в природе - 95% замшелый > шлак, > сохраняющий совместимость с тем, что уже давно померло. Да, это наверное > круто, что написанный сейчас xdg-open можно запустить на тазике 1992 года > выпуска. Только вот нахрена? И что он там сделает? Если бы все люди предпочитали одинаковые горшки :-( Но кто-то запускает ту же самую хрень на Debian, кто-то на Gentoo, Guix, *BSD... А потом боремся с башизмами. И сколько времени и нервов тратится... -- Vladimir (λ)επτόν EDA — https://github.com/lepton-eda
Re: Firefox неправильно восстанавливает запомненную при выходе позицию
Victor Wagner wrote: > В Sat, 28 Sep 2019 13:41:09 +0300 > "Andrey Jr. Melnikov" пишет: > > Victor Wagner wrote: > > > On Thu, 26 Sep 2019 16:14:50 +0300 (MSK) > > > yuri.nefe...@gmail.com wrote: > > > > [...] > > > > > Тут мы не на grep экономим, а на test. В смысле на команде > > > "квадратая скобка". После найденного мной бага #931822 мне очень > > > хочется у тех, кто не понимает что такое команда квадратная скобка, > > > в чем ее отличие от > > Нет давно такой комманды (в понимании современных shell'ов). Уже > > давно везде что '[', что 'test' - builtin. > buitin, не builtin синтаксически это все равно команда с параметрами. Вопрос - какая. Вот у нас их получается 2 варианта - один POSIX который прибит в *sh, второй /usr/bin/{[,test} который с башизмами. И зная различия в этих командах - можно то выполнить if /usr/bin/test && > Проблема в том что люди не понимают, что условием в шелловских условных > конструкциях является не какое-то там выражениеп, а именно > последовательность шелловских команд, формирующая некий код завершения. Проблема в том, что всякие стандарты пишут академики. И ни одна "светлая академическая голова" не придумала банальной вещи - запросить у чертового шелла какую именно часть POSIX он реализует. Или, раз мы уже всё равно таскаем за собой '[' и 'test' - при нахождении внутри [ ... ] неизвестных операторов - считать, что реализация в *sh устарела и вызывать '/usr/bin/[' с параметрами. > А [ - это всего лишь такая маленькая команда для проверки часто > встречающихся условий. > При этом что в шелле есть логические операции, что в командной строке > test есть логические операции и они РАЗНЫЕ. Витус, как так ЛОГИЧЕСКИЕ операции могут быть разными? AND и OR - они и в африке AND и OR. И от наличия в каком-то замшелом man'e надписей про "deprectated" - они не зависят. У нас тут бинарная логика, а не квантовые вычисления. PS: Спор то ниочем. Из всех шеллов, которые есть в природе - 95% замшелый шлак, сохраняющий совместимость с тем, что уже давно померло. Да, это наверное круто, что написанный сейчас xdg-open можно запустить на тазике 1992 года выпуска. Только вот нахрена? И что он там сделает?
Re: «To: undisclosed-recipients:;»?
29.09.2019 20:30, Dmitry Alexandrov пишет: Дмитрий wrote: To: undisclosed-recipients:; Что это еще за новости, кстати? В какой это секретный отдел вы там письма дублируете? :-) На Лубянку и в здание Гувера, само собой :-) Ошибся, оставил поле "Кому:" пустым.
Re: О тонкостях синтаксиса Баша (was: Firefox неправильно восстанавливает запомненную при выходе позицию)
On Sun, Sep 29, 2019 at 08:19:53PM +0300, Dmitry Alexandrov wrote: > Eugene Berdnikov wrote: > > On Sun, Sep 29, 2019 at 01:18:01AM +0300, Dmitry Alexandrov wrote: > >> Eugene Berdnikov wrote: > >>> Синтаксически символ [ не является alphanumeric, поэтому он является не > >>> нормальным именем команды, а нелепым исключением. > >> > >> Почему? Тут вам не Винда, из запретных для файловых имен символов — > >> кажется, только нулевой. > > > > Потому что символ [ ещё является одним из спецсимволов для file globbing, > > Таки нет, сверьтесь с (info "(bash) Pattern Matching"). Особым значением > наделено то, что внутри _пары_ квадратных скобок внутри одного слова. Так > что никакого исключения тут предусматривать не надо. И юзер всё это должен держать в голове? А также то, что [ может быть именем файла, который баш был бы готов запустить (если бы не одноимённый builtin), а вот с { и ( это уже не так. Лёгкий вынос мозга... Гораздо легче было бы считать, что [] {} () это строго парные синтаксические разделители. Тем более что команда [ ну очень хочет получить последним аргументом ]. Не надо убеждать меня в том, что алгоритм обработки параметров в баше непротиворечив. Я говорю о том, что контринтуитивен для тех, кто вырос в нашей сложившейся среде и культуре программирования. -- Eugene Berdnikov
Re: Firefox неправильно восстанавливает запомненную при выходе позицию
On Sun, Sep 29, 2019 at 07:11:30PM +0300, Victor Wagner wrote: > В Sun, 29 Sep 2019 12:36:12 +0300 > Eugene Berdnikov пишет: > > > On Sun, Sep 29, 2019 at 12:31:13PM +0300, Victor Wagner wrote: > > > Я уж не говорю про остерхутовскую концепцию safe comartments, > > > которая была создана более 20 лет назад и которая намного лучше и > > > совершеннее того, что предлагают современные решения для исполнения > > > недоверенного кода, включая мобильные ОС. > > > > Подробнее об этом можно? > > Вообще Остерхут в прошлом году издал книжку "Phylosophy of Software > Design" > > Но вообще я имел в виду вот эту статью с Usenix 1998 года: > > https://www.usenix.org/legacy/publications/library/proceedings/usenix98/full_papers/levy/levy.pdf Пробежался по нескольким первым страницам -- не заметил ничего принципиально нового. Системные вызовы заменяются прослойками со встроенными фильтрами для контроля доступа, приложения выполняются защищёнными интерпретаторами, типа процессов ОС или контейнеров. Что тут принципиально отличное от современных подходов? -- Eugene Berdnikov
Re: «To: undisclosed-recipients:;»?
Дмитрий wrote: > To: undisclosed-recipients:; Что это еще за новости, кстати? В какой это секретный отдел вы там письма дублируете? :-) signature.asc Description: PGP signature
Re: «Единственный мне известный логичный язык - это Tcl» (was: Firefox неправильно восстанавливает запомненную при выходе позицию)
Victor Wagner wrote: > В Sun, 29 Sep 2019 12:16:57 +0300 Eugene Berdnikov пишет: >> Короче, Bourne shell это тяжкий груз наследственности. > > Любая система, получившаяся сколько-нибудь широкое распространие - это тяжкий > груз наследственности. > Единственный мне известный логичный язык - это Tcl «Схема» предельно логична. Да и вообще, пожалуй, любой Лисп будет пологичнее Тикля. signature.asc Description: PGP signature
О тонкостях синтаксиса Баша (was: Firefox неправильно восстанавливает запомненную при выходе позицию)
Eugene Berdnikov wrote: > On Sun, Sep 29, 2019 at 01:18:01AM +0300, Dmitry Alexandrov wrote: >> Eugene Berdnikov wrote: >>> Синтаксически символ [ не является alphanumeric, поэтому он является не >>> нормальным именем команды, а нелепым исключением. >> >> Почему? Тут вам не Винда, из запретных для файловых имен символов — >> кажется, только нулевой. > > Потому что символ [ ещё является одним из спецсимволов для file globbing, Таки нет, сверьтесь с (info "(bash) Pattern Matching"). Особым значением наделено то, что внутри _пары_ квадратных скобок внутри одного слова. Так что никакого исключения тут предусматривать не надо. > Да, в случае одиночного [ глоббинг не случится, потому что такой шаблон > синтаксически неправилен Это насколько же «неправильный шаблон», насколько и, скажем, «ls». > но вместо того, чтобы выдать сообщение об ошибке в шаблоне, … шелл пойдёт > искать бинарий по PATH. Ну, что ж, прикажем ему выдавать сообщения об ошибках: $ shopt -s failglob $ echo [a-z] bash: no match: [a-z] $ echo [ [ signature.asc Description: PGP signature
Re: bash: команда не найдена
Дмитрий wrote: > 29.09.2019 00:54, Dmitry Alexandrov пишет: >> mexx400 wrote: 28 сент. 2019 г., в 23:01, S.Kholodny написал(а): Уже который раз натыкаюсь в buster'e на ситуацию, где не могу запустить команду в терминале - выдает "bash: команда не найдена". Точно были hdparm, openvpn, другие пакеты.. >>> >>> В общем sudo command. >> >> В общем — нет. Не всякой программе из sbin нужны сверхпользовательские >> полномочия. > > ТС спрашивал про конкретные команды. Да нет... > С практической точки зрения sudo command даст ему желаемый результат. > Например: > $ hdparm -h > bash: hdparm: команда не найдена > Однако: > $ sudo hdparm -h > hdparm - get/set hard disk parameters - version v9.52, by Mark Lord. > Usage: hdparm [options] [device ...] > Options: ... $ sudo halt -h signature.asc Description: PGP signature
Re: Firefox неправильно восстанавливает запомненную при выходе позицию
В Sun, 29 Sep 2019 12:36:12 +0300 Eugene Berdnikov пишет: > On Sun, Sep 29, 2019 at 12:31:13PM +0300, Victor Wagner wrote: > > Я уж не говорю про остерхутовскую концепцию safe comartments, > > которая была создана более 20 лет назад и которая намного лучше и > > совершеннее того, что предлагают современные решения для исполнения > > недоверенного кода, включая мобильные ОС. > > Подробнее об этом можно? Вообще Остерхут в прошлом году издал книжку "Phylosophy of Software Design" Но вообще я имел в виду вот эту статью с Usenix 1998 года: https://www.usenix.org/legacy/publications/library/proceedings/usenix98/full_papers/levy/levy.pdf -- Victor Wagner
Re: bash: команда не найдена
29.09.2019 00:54, Dmitry Alexandrov пишет: mexx400 wrote: 28 сент. 2019 г., в 23:01, S.Kholodny написал(а): Уже который раз натыкаюсь в buster'e на ситуацию, где не могу запустить команду в терминале - выдает "bash: команда не найдена". Точно были hdparm, openvpn, другие пакеты.. В общем sudo command. В общем — нет. Не всякой программе из sbin нужны сверхпользовательские полномочия. ТС спрашивал про конкретные команды. Теорию осветили выше. С практической точки зрения sudo command даст ему желаемый результат. Например: $ hdparm -h bash: hdparm: команда не найдена Однако: $ sudo hdparm -h hdparm - get/set hard disk parameters - version v9.52, by Mark Lord. Usage: hdparm [options] [device ...] Options: ...
Re: Firefox неправильно восстанавливает запомненную при выходе позицию
On Sun, Sep 29, 2019 at 12:31:13PM +0300, Victor Wagner wrote: > Я уж не говорю про остерхутовскую концепцию safe comartments, которая > была создана более 20 лет назад и которая намного лучше и совершеннее > того, что предлагают современные решения для исполнения недоверенного > кода, включая мобильные ОС. Подробнее об этом можно? -- Eugene Berdnikov
Re: Firefox неправильно восстанавливает запомненную при выходе позицию
В Sun, 29 Sep 2019 12:16:57 +0300 Eugene Berdnikov пишет: > Обычный > человек, выросший в нашей современной культуре программирования, > склонен воспринимать [ ... ] как часть синтаксиса, а не думать > постоянно о тонкостях трактовки параметров со множеством неочевидных > "волчьих ям" (piffalls). > > Короче, Bourne shell это тяжкий груз наследственности. Любая система, получившаяся сколько-нибудь широкое распространие - это тяжкий груз наследственности. Вот возьмем, скажем C, программа на котором подобна гороскопу - по расположению звездочек в ней программист пытается понять что произойдет. Или php. Или концепцию сессии в Unix, которая унаследована со времен последовательных терминалов и не понимает ни мультимедиа, ни съемных файловых носителей, контроль над вставкой-выниманием которых у пользователя. Логики в ИТ вообще нет. Есть куча исторических напластований, причем с принципиально разным полаганием у тех, кто создавал разные слои. Единственный мне известный логичный язык - это Tcl (и то если не брать многие позднейшие библиотеки вроде BWidget). Но "люди, выросшие в нашей современной культуре программирования" не читают трехстраничный man Tcl в котором эта логика изложена, а пытаются действовать "интуитивно" то есть по аналогии с другими известными им решениями, и ругают Tcl за quoting hell, хотя правила раскрытия кавычек в нем элементарны, их изложение укладывается в трех абзацах и исключений НЕТ. Я уж не говорю про остерхутовскую концепцию safe comartments, которая была создана более 20 лет назад и которая намного лучше и совершеннее того, что предлагают современные решения для исполнения недоверенного кода, включая мобильные ОС. -- Victor Wagner
Re: Firefox неправильно восстанавливает запомненную при выходе позицию
On Sun, Sep 29, 2019 at 01:18:01AM +0300, Dmitry Alexandrov wrote: > Eugene Berdnikov wrote: > > On Sat, Sep 28, 2019 at 11:24:18PM +0300, Victor Wagner wrote: > >> buitin, не builtin синтаксически это все равно команда с параметрами. > > > > Синтаксически символ [ не является alphanumeric, поэтому он является не > > нормальным именем команды, а нелепым исключением. > > Почему? Тут вам не Винда, из запретных для файловых имен символов — кажется, > только нулевой. Потому что символ [ ещё является одним из спецсимволов для file globbing, и если написать, например, [a-z] то сначала Баш попытается раскрыть это выражение, подобрав из текущего каталога файлы "a", "b" ... "z", и только если это не удастся, пойдёт искать файл "[a-z]" по каталогам в PATH. Да, в случае одиночного [ глоббинг не случится, потому что такой шаблон синтаксически неправилен, но вместо того, чтобы выдать сообщение об ошибке в шаблоне, классический борновский шелл пойдёт искать бинарий по PATH. Всё это контринтиутивно. Обычный человек, выросший в нашей современной культуре программирования, склонен воспринимать [ ... ] как часть синтаксиса, а не думать постоянно о тонкостях трактовки параметров со множеством неочевидных "волчьих ям" (piffalls). Короче, Bourne shell это тяжкий груз наследственности. > > Перечитал это раз пять, но ниасилил, увы... :) > > Имеется в виду Bash Pitfall № 9 по Вулиджу [0]. > > [0] https://mywiki.wooledge.org/BashPitfalls#if_.5Bgrep_foo_myfile.5D Спасибо. Да, читается как медицинская карта тяжелобольного. -- Eugene Berdnikov