“Словами”я же говорил…“”

2023-03-15

Докер закрывает аккаунты Open Source организаций:

https://blog.alexellis.io/docker-is-deleting-open-source-images/ Docker is deleting Open Source organisations — what you need to know

https://news.ycombinator.com/item?id=35166317 Docker is deleting Open Source organisations — what you need to know | Hacker News

То, что они пойдут по пути гугла — “подсадим всех на сервис, потом резко коммерциализируем его и соберем сливки, пока пользователи будут изобретать альтернативу” — стало более или менее понятно еще пару лет назад. С тех пор любая технология, предлагавшая “вы можете поставить наше приложение через docker” и не предлагавшая вменяемых альтернатив, шла лесом. Глядя на текущие метания коммьюнити, понимаю, что выбор был правильным.

Вообще говоря, очень много современных технологий, точнее продаж современных технологий основаны на лени разработчиков копаться в деталях и изучать элементарные вещи. Современный человек рассуждает так: читать мануалы и экспериментировать невыносимо тяжело и скучно, поэтому давайте заплатим дяде с облаками и он сделает работу за нас. До какого-то момента это срабатывает. А потом дядя закручивает кран.


Про эффективность ChatGPT

2023-03-08

Если вы работали с веб-сервером Apache2, то могли заметить, что часть переменных конфигов вынесена в отдельный файл.

Вот файл:

/etc/apache2/apache2.conf

А вот настройки внутри него:

...

#
# The directory where shm and other runtime files will be stored.
#

DefaultRuntimeDir ${APACHE_RUN_DIR}

...

У меня сегодня возник вопрос — откуда берется это самое ${APACHE_RUN_DIR}?

Понятное дело, что отсюда:

/etc/apache2/envvars

То есть есть отдельный файл, где эти переменные прописываются через экспорт в bash-переменные среды (назовем их так):

export APACHE_RUN_DIR=/var/run/apache2$SUFFIX

В комментариях внутри файла это даже объясняют:

# Since there is no sane way to get the parsed apache2 config in scripts,
# some settings are defined via environment variables and then used in
# apache2ctl, /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
...

Однако, последняя страница детектива была написана по-арабски — поэтому я начал выяснять с чего бы это понадобились переменные среды? И почему нет “sane way”, чтобы получить их “в скриптах” (и что за скрипты?).

Я вспомнил, что есть такая штука, как OpenGPT Chat — и мне стало интересно, как это сработает на нем.


Q: что значит Since there is no sane way to get the parsed apache2 config in scripts

A: Это фраза на английском языке, которая означает: “Поскольку нет разумного способа получить обработанный (анализированный) конфигурационный файл apache2 в сценариях”.

Эта фраза может быть частью более длинного контекста, связанного с использованием сервера веб-приложений Apache. В целом, это высказывание говорит о том, что нет простого способа получить доступ к обработанному (или разобранному) конфигурационному файлу Apache в рамках скрипта (например, на языке программирования, таком как Python или Bash).

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


Q: Почему нет простого способа?

A: Ответ на этот вопрос связан с тем, как работает сервер веб-приложений Apache и какие инструменты доступны для работы с его конфигурационным файлом.

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

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

Поэтому, при работе со скриптами и конфигурационными файлами Apache2, часто используются различные методы парсинга и обработки текстовых файлов, которые могут быть не такими простыми, как работа с готовым API.


Вода-вода. С арабского перевели на канцелярский, а потом на аймара. Там было еще некоторое количество бесплодных расспросов, на которые OpenGPT выдвал много разной воды в стиле реферата студента-первокурсника, но интересующий меня вопрос не прояснился.

В конце концов, стало понятно, что ChatGPT тут не помощник и пришлось искать решение самому.

Я вспомнил, что если мы говорим про такую технологию, как CGI, то любой скрипт (или вообще исполняемый файл), который запускается веб-сервером, запускается в своей собственной среде. Поскольку это потенциальная брешь для атаки, то такие скрипты стараются максимально изолировать от операционной системы. Такой скрипт даже не знает из какой папки на диске он был запущен. Соответственно, приходящую информацию (содержимое POST, PUT, GET и т.д. и т.п.) передают в виде переменных среды. В частности в переменной QUERY_STRING.

Есть еще куча переменных, которые описаны, например, тут:

https://docstore.mik.ua/orelly/linux/cgi/ch03_02.htm

Поскольку большинство языков программирования умеют читать эти переменные среды (и имеют к ним доступ) — это позволяет создать что-то вроде единого API. Для того, чтобы генерировать динамический сайт годится программа, написанная на любом языке, которая способна прочитать переменные среды и напечатать в ответ html-текст.

Получается, что апач, экспортируя свои значимые параметры в переменные среды тоже использует этот интерфейс. Любая программа, запущенная через CGI будет знать, где искать APACHE_RUN_DIR, например. Где лежат конфиги, какая версия апача и т.д. и т.п. Вот зачем нужно экспортировать это все в переменные среды.

Я немного упростил вопрос — CGI сейчас уступил место другим протоколам, переменные среды могут использовать и нативные утилиты баша (раз уж мы их экспортировали — почему не использовать везде, где можно), но идея в принципе та же.

Рассказал мне это все OpenGPT? В ответ на вопрос он насыпал мне кусков документации, которые щедро склеены канцеляритом, но никаких намеков на то, куда копать, он не дал.

Я еще немного поэкспериментировал с разными областями и темами, но сдался после такого:


Q: когда при фосфорилировании может выделяться тепло?

A: При фосфорилировании может выделяться тепло в тех случаях, когда энергия, полученная при реакциях синтеза АТФ, не расходуется полностью на выполнение клеточных процессов и не утилизируется в виде тепла. …


GPT отменил закон сохранения энергии — тепло выделяется тогда, когда энергия при реакции не расходуется на клеточные процессы и не утилизируется в виде тепла.

В сухом остатке имеем проапгрейдженный вариант гугла, пока что без спама и накруток, но то ли еще будет. Если лень читать документацию и разбираться — его можно использовать в качестве интеллектуального заменителя man или ассистента в гуглении, но и только.

То, что он проходит тест Тьюринга и сдает эказмены, по моему скромному мнению говорит не столько о самой системе, сколько о том, как плохо у нас стало с общением и с экзаменами. Если система научных рецензентов пропустила текст “Корчеватель” (погуглите — очень поучительная история) — она переварит любую бессмыслицу.

Мне кажется, что бить тревогу по этому поводу бессмысленно.

Наука и образование последние два десятка лет стремились к тому, чтобы получить возможность оценивать работу ученого и педагога чисто по внешним признакам, без содержательной части. Это очень удобно для чиновников и бюрократов — не нужно быть специалистом, чтобы пилить гранты высказывать обоснованное мнение о научно-педагогических работниках. Достаточно посчитать сколько раз цитируют работы ученого, посмотреть на сертификаты о прохождении курсов повышения квалификации педагога — и можно оценить их работу не вникая в содержание.

Происходит примерно тоже, что и с копипастой в интернете. Напомню:

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

https://tengu-crow.livejournal.com/811447.html

Сейчас та же история повторяется, но уже под другим углом. У нас появились генераторы бессмысленной, корявой, но внешне убедительной копипасты. То, что их превозносят “научные журналисты” и “популяризаторы науки”, говорит только о том, что у этих поп-журов все плохо с образованием и они, как и чиновники, судят тексты только по внешним признакам, не вникая в содержательную часть, а тем более в смысл текста.

Думаю, что дальше по оси времени сложится ситуация, чем-то схожая с использованием GPS — но это тема отдельного разговора.