LINUX.ORG.RU
ФорумTalks

Теперь уже не пишут bash/powershell установочный скрипт. Теперь пишут установочный промпт.

 ,


0

1

С такими словами коллега скинул в чат ссылку и скрин по ссылке, откуда и копипащу:

Install with your AI assistant

Paste this into your AI chat:

Fetch https://raw.githubusercontent.com/Fission-AI/OpenSpec/main/install.md and follow it.

Or, in your terminal, pipe it into a CLI agent (Claude Code shown):

curl -fsSL https://raw.githubusercontent.com/Fission-AI/OpenSpec/main/install.md | claude
★★★★★
Ответ на: комментарий от VIT

А ТС следовало просто обсудить ситуацию с коллегой, а не истерить на пустом месте.

Покажи пожалуйста, где именно я «истерил».

dimgel ★★★★★
() автор топика
Ответ на: комментарий от wandrien

Я как раз про это. Насколько серьёзными должны быть ограничения?..

bbc69
()
Ответ на: комментарий от VIT

от прескриптив к дескриптив (не знаю как также ёмко выразить по-русски).

Это называется декларативный подход.

bbc69
()
Ответ на: комментарий от bbc69

Это называется декларативный подход.

Который причём существовал задолго до ИИ.

dimgel ★★★★★
() автор топика
Ответ на: комментарий от dimgel

Весь это процесс обсуждения - процесс обычной истерики. Особенно ваше первое сообщение. Не хватает ещё пафосных «смотри, что делается!» и «куда катится мир!» и будет как бабка на базаре или в автобусе.

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

VIT ★★★
()
Ответ на: комментарий от wandrien

sh/bash/python детерминирован - скрипт способен делать то, что содержится в коде и не способен делать то, что в коде не записано.

Скрипт вообще ничего не способен делать. Это просто текстовый файл. Делает интерпретатор этого скрипта. На разных системах разный. Скрипт вызывает программы по имени. На разных системах эти программы разные. И это не теоретические изыскания, это реальность. Вот буквально недавно в убунте coreutils заменили, некоторые скрипты поломались. Как там с детерменированностью?

vbr ★★★★★
()
Ответ на: комментарий от vbr

Вот буквально недавно в убунте coreutils заменили, некоторые скрипты поломались. Как там с детерменированностью?

Детерминированно не работает.

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

wandrien ★★★★
()
Ответ на: комментарий от wandrien

Нет, процедурный не указывает на последовательность исполнения именно так и никак иначе.

VIT ★★★
()
Ответ на: комментарий от bbc69

Против императивного.

Да, точно. А я не вспомнил нужное слово.

wandrien ★★★★
()
Ответ на: комментарий от bbc69

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

VIT ★★★
()
Ответ на: комментарий от wandrien

Детерминированно не работает.

Чего это не работает? У кого-то работает, у кого-то не работает. На новых версиях убунты не работает, на старых работает.

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

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

Проблема детерминированности - она вообще нетривиальная. Люди годами пытаются сделать так, чтобы хотя бы сборка программы была детерминированна. Т.е. выдавала побайтово идентичный результат между запусками. А у тебя всё так просто.

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

Но это же не троллинг.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 3)
Ответ на: комментарий от VIT

Весь это процесс обсуждения - процесс обычной истерики. Особенно ваше первое сообщение.

М-да…

Не хватает ещё пафосных «смотри, что делается!» и «куда катится мир!» и будет как бабка на базаре или в автобусе.

Как раз этот твой камент – оно самое. Так что уже хватает.

Как бы там ни было, общими усилиями мы пришли к тому,

что на самолётах, управляемых ИИ, лучше не летать. Но тебе могу пожелать удачи. :)

В игнор.

dimgel ★★★★★
() автор топика
Последнее исправление: dimgel (всего исправлений: 1)
Ответ на: комментарий от vbr

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

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

Важная характеристика техногенной среды - подконтрольность человеческим процессам.

Советую ознакомиться:

А вот свежая новость:

wandrien ★★★★
()
Ответ на: комментарий от VIT

Вообще-то латынь. Тут ничего не поделаешь, ибо мы - европейцы и европейский язык нам близок. А уж государство свои корни берёт от Древнего Рима через Византию, так что для нас это вообще норма.

Но я к языку отношусь свободно и вполне допускаю замены на более понятные аналоги. Декларативный можно заменить на описательный. С императивом чуть сложнее, процедурный вполне подходит. Инструкционный звучит коряво, повелительный - непонятно. Хотя последнее корректно, в общем. Можно ещё поискать, но как будто не надо.

bbc69
()
Ответ на: комментарий от VIT

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

bbc69 уже назвал аналог в исконно русской лексике: повелительный.

wandrien ★★★★
()
Ответ на: комментарий от VIT

Императив (от лат. imperativus — повелительный) - повеление, безусловное требование.

Пошаговый - точно мимо.

Командный - приемлемо. Даже неплохо.

Предписывающий - это уже скорее декларативный.

Итого: командный или повелительный. Мне последний вариант всё больше нравится.

bbc69
()
Ответ на: комментарий от dimgel

Хорошо, что я уже старый и не доживу до времён, когда цивилизация накроется.

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

bread
()
Ответ на: комментарий от LightDiver

Я сам не могу выразть точно претензии и что с этим делать.

И промолчать не можешь, вот что огорчает.

thesis ★★★★★
()
Ответ на: комментарий от dimgel

Хорошо, что я уже старый и не доживу до времён, когда цивилизация накроется.

С бодрой интонацией оптимиста: Доживешь-доживешь!

thesis ★★★★★
()
Ответ на: комментарий от bbc69

Командный - приемлемо. Даже неплохо.

Приказной тогда.

thesis ★★★★★
()
Ответ на: комментарий от LightDiver

И это в первую очередь не проблема ИИшке, а проблема линукса.

В GNU/Linux это как раз не проблема, если ты не включал DontVTSwitch то по идеи в самом X11 переключение VT продолжало бы работать, во вторых можно было зайти по ssh и снять блокировку.

Eshkin_kot ★★
()
Последнее исправление: Eshkin_kot (всего исправлений: 1)
Ответ на: комментарий от Eshkin_kot

Через что можно было зайти по ссх, если у меня один ноут? Он использовал монопольный доступ к устройству - grab().

Если бы можно было получить доступ к консоли, я бы прибил скрипт.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Когда на уровне иксов делается grab устройства, это не предотвращает переключение в ядерный терминал.

У тебя что-то иное было значит.

wandrien ★★★★
()
Ответ на: комментарий от wandrien
calculate diver # cat /proc/sys/kernel/sysrq
16
calculate diver # 

Ладно, это косяк разрабов кальки был.

LightDiver ★★★★★
()
Ответ на: комментарий от no-dashi-v2

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

VIT ★★★
()
Ответ на: комментарий от LightDiver

Если не включать DontVTSwitch то VT терминалы переключаются по Ctrl-Alt-Fx даже если XGrabKeyboard активно. SSH клиента можно поставить на android телефон :-)

Eshkin_kot ★★
()
Ответ на: комментарий от Eshkin_kot

Ctrl-Alt-Fx

Если бы это работало, проблем в принципе бы не было. Последние лет 8 у КДЕ есть очень редкий, но невероятно бесячий баг. Когда что то быстро делаешь в дельфине изредка квин вешается намертво и перестает отвечать. Тогда как раз перечаешься на другой терминал, убиваешь его и все отвисает. Но такое не чаще раза в год.

Во, нашел тот вариант:

#!/usr/bin/env python3
# Warcraft III - Камера на WASD для Linux
# Запуск: sudo python3 ~/wc3_camera.py

import evdev
from evdev import UInput, ecodes as e
import time

# Список возможных клавиатур (попробуем все)
KEYBOARD_DEVICES = [
    "/dev/input/event4",  # A4TECH USB Keyboard
    "/dev/input/event7",  # SEM USB Keyboard
    "/dev/input/event3",  # AT Translated Set 2 keyboard (ноутбучная)
]

# Соответствие клавиш WASD -> стрелки
key_map = {
    17: e.KEY_UP,     # W
    30: e.KEY_LEFT,   # A
    31: e.KEY_DOWN,   # S
    32: e.KEY_RIGHT,  # D
}

# Создаём виртуальную клавиатуру для стрелок
ui = UInput.from_device(evdev.InputDevice(KEYBOARD_DEVICES[0]), name="wc3-camera-arrows")

# Отслеживаем состояние клавиш
keys_down = {
    e.KEY_UP: False,
    e.KEY_LEFT: False,
    e.KEY_DOWN: False,
    e.KEY_RIGHT: False,
}

print("Скрипт запущен. WASD будет работать как стрелки (камера в WC3).")
print("Нажмите Ctrl+C для остановки.")

# Открываем все клавиатуры
devices = []
for path in KEYBOARD_DEVICES:
    try:
        dev = evdev.InputDevice(path)
        dev.grab()  # Захватываем клавиатуру
        devices.append(dev)
        print(f"Захвачена клавиатура: {dev.name} ({path})")
    except Exception as ex:
        print(f"Не удалось открыть {path}: {ex}")

# Читаем события со всех клавиатур
from select import select

try:
    while True:
        # Ждём события от любой клавиатуры
        readable, _, _ = select([dev.fd for dev in devices], [], [], 0.1)
        
        for fd in readable:
            for dev in devices:
                if dev.fd == fd:
                    try:
                        for event in dev.read():
                            if event.type == e.EV_KEY:
                                if event.code in key_map:
                                    arrow_key = key_map[event.code]
                                    
                                    if event.value == 1:  # Нажата
                                        if not keys_down[arrow_key]:
                                            keys_down[arrow_key] = True
                                            ui.write(e.EV_KEY, arrow_key, 1)
                                            ui.syn()
                                    elif event.value == 0:  # Отпущена
                                        if keys_down[arrow_key]:
                                            keys_down[arrow_key] = False
                                            ui.write(e.EV_KEY, arrow_key, 0)
                                            ui.syn()
                    except Exception:
                        pass
                    break

except KeyboardInterrupt:
    print("\nСкрипт остановлен.")
finally:
    for dev in devices:
        try:
            dev.ungrab()
        except:
            pass
    ui.close()

Всегда читайте чего они делают, даже если там немного. Особенно…

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от VIT

Нет, скрипты и мейкфайлы именн что детерминированы. Если в них пишется «rm -rf home» то он удаляет home в текущем каталоге. А искусственный идиот с дебилом-агентом вполне могут решить «проверяю что каталог доступен на запись. Такого каталога нет. Вероятно речь идет о каталоге /home. Проверяю права - удаление возможно. Удаляю /home» и потом «Ты абсолютно прав, это была непростительная ошибка, я был неправ»

no-dashi-v2 ★★★★
()
Ответ на: комментарий от no-dashi-v2

Нет, скрипты и мейкфайлы именн что детерминированы.

Блажен, кто верует.

VIT ★★★
()
Ответ на: комментарий от no-dashi-v2

А искусственный идиот с дебилом-агентом

А это-то тут при чём? Я ничего про идиотов и дебилов не говорил и не обсуждал.

VIT ★★★
()
Ответ на: комментарий от vbr

Скрипт вообще ничего не способен делать. Это просто текстовый файл.

Это не только скриптов касается, если уж начинать душнить. :)

sabacs
()
Ответ на: комментарий от vbr

Скрипт вообще ничего не способен делать. Это просто текстовый файл. Делает интерпретатор этого скрипта.

Интерпретатор тоже ничего не способен делать. Это просто бинарный файл. Делает процессор.

@sabacs 🤝️

dimgel ★★★★★
() автор топика
Последнее исправление: dimgel (всего исправлений: 3)
Ответ на: комментарий от dataman

Говорил ли Марк Твен: «Будьте осторожны при чтении книг о здоровье. Вы можете умереть от опечатки»?⁠

А вот высказывание, которое назвали «закон По» и датировали 2005 годом, Твен употреблял. «Написать пародию, настолько дикую, чтобы ни один человек не принял за чистую монету „факты“, в ней изложенные, — почти невозможно». — «To write a burlesque so wild that its pretended facts will not be accepted in perfect good faith by somebody, is very nearly an impossible thing to do.» https://en.wikisource.org/wiki/The_Curious_Republic_of_Gondour/A_Couple_of_Sad_Experiences

question4 ★★★★★
()
Последнее исправление: question4 (всего исправлений: 1)
Ответ на: комментарий от vbr

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

И это замечательно и правильно. Потому, что современные ЛЛМ и их системные промпты и прочее адаптированы на максимальное удержание пользователя. И вот молодой песрективный креативщик Васиэл решает поставить какую0нибудь игруху. И привлекает ИЫ для этого. LLM радостно находит хз-где какой-то версии пакет, пытается его поставить. Не встает - ставит с форсом. Запускает - падает. Смотрит где упала - ой, ей нужен символ GLIBC_2.2 какой-нибудь. Недолго думая, ЛЛМ находит в закромах знание о том, что когда-то давным-давно, 5 лет назад кто-то решил такую проблему установив новую (на то время) версию glibc. И вот агент с моделью радостно закатывают юзеру ту-самую версию - мгновенно убивая систему, ведь для него нет понятий прошлого, будущего и настоящего, только контекст в котором команды и их выхлоп.

no-dashi-v2 ★★★★
()
Ответ на: комментарий от no-dashi-v2

История интересная, но вряд ли основанная на реальности. Обычно вышеописанное происходит, когда Васиэл следует инструкциям и советам из интернета.

vbr ★★★★★
()
Ответ на: комментарий от vbr

Попробуй на sh надёжно написать команду find . | wc -l. ты быстро поймёшь, что статус выхода первой команды ты даже узнать не сможешь в стандартном sh. Что -o pipefail это башизм.

Правильный sh это babashka и там это элементарно решается так.

user> (try 
        (-> "/tmp/test-dir/" fs/list-dir count)
        (catch Exception e 
          (println "Ошибка при чтении" (.getMessage e))
          (println e)))
Ошибка при чтении /tmp/test-dir
#error {
 :cause /tmp/test-dir
 :via
 [{:type java.nio.file.AccessDeniedException
   :message /tmp/test-dir
   :at [sun.nio.fs.UnixFileSystemProvider newDirectoryStream UnixFileSystemProvider.java 456]}]

...
ugoday ★★★★★
()
Ответ на: комментарий от VIT

охватывает более широкую аудиторию

Спасибо за прекрасный эвфемизм. «Для дебилов», действительно, звучит иногда слишком грубо. А тут так изящно и тонко, вместе с тем не теряя точности.

ugoday ★★★★★
()
Ответ на: комментарий от bbc69

Декларативный можно заменить на описательный.

Императивный — предписательный же.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

Нет, не для дебилов, а для людей, которым наконец рано или поздно приходится иметь дело с компьютером и выполнять самостоятельно незапланированные «местным специалистом» действия.

VIT ★★★
()
Последнее исправление: VIT (всего исправлений: 1)
Ответ на: комментарий от VIT

Кстати, «Алиса, сколько времени?» тоже имеет прямое отношение к теме обсуждения. Вы считаете каждого произносящего такую фразу дебилом? Ведь мог бы подойти к компьютеру, открыть консоль, напечатать date

VIT ★★★
()
Ответ на: комментарий от ugoday

Ну хорошо, а более сложную фразу «Алиса, какая сейчас температура в Кирово-Чепецке?» или «Какой сейчас курс Австралийского доллара к евро?»

Я догадался, тоже да :) У меня для вас плохая новость. Вы медленно въезжаете в мир дебилов вокруг вас. Конечно, можно искать другую Землю и сойти, но есть и менее радикальный путь.

VIT ★★★
()
Вы не можете добавлять комментарии в эту тему: только для зарегистрированных, score>=50.