На 15% кликбейт, на 85% правда: makefile это не "запускатель тасок". он делает файл(ы), буквально. make file(s). Если это понять - всё становится проще.
Ещё есть всякие штуки, которые для тестов инфраструктуры используются и прочих провер. На вскидку, ChefSpec (он же был Inspec, он же вырос из serverspec, хз как там лицензия сейчас). Но https://serverspec.org/ вроде бы живой. пиши себе тесты да и красиво показывай.
От ансибла тоже что-то было, только жутко тормознутое.
Конечно, bash наше всё и можно сделать лучше, но скрипт очень "так-себе". Но уж если очень хочется, https://github.com/bats-core/bats-core можно и на нём тесты написать
Что такое ансибл? Это: - нечёткая структура переменных - хочу здесь, хочу там - роли, но не роли (много подводных камней), может группа тасков? - группа тасков, но произвольный вызывать без кастылей нельзя - плейбуки, но толку мало, так что там? таски или роли внутри? смешивать нельзя - переменные как бы внутри сущности, но нет, глобальные - хочешь написать простую логику: вот тебе ямл, внутри jinja, а там фильтр - вот так переменную использовать нельзя, а вот так - попробуй - when: хм, там дальше строка или jinja? а, просто.. - замечательный перфоманс: 10 тривиальных задач на 2ms каждая, стартанём python процесс, импортнём вообще всё, до чего руки дотянутся, потратим кучу времени, выполним 2+2 и сдохнем. и так по кругу 1000 раз. Зато удобно, пока плейбук работает, можно на обед сходить. - непредсказуемый инвентори: какая там у него структура, куда что складывать? а если мне файлы надо передать, но они специфичны для энва - это инвентори или просто папка files? Держать внутри инвентори или рядом с плейбуками? а почему файлы не ищутся в инвентори, но в плейбуках и ролях.
и много много других приколов. Вот и получается, что якобы умная замена bash. но. ansible удобно где надо hello world, но там и bash справится и проще взять его,
а где не hello world и bash уже не вывозит... хм... ансибл тоже что-то не вывозит.
Нет, не ясно. В задаче нет слов "матрица", "оси", "параллелен". единственное что спасает и за что можно затецпиться "...сторону квадрата, заполненного морковками полностью".
конечно, на живом интервью это всё проговаривается и уточняется - это норм. на каких олимпиадах - такие вещи выверяются и условия задаются более точно.
вот кстати, ровно наоборот. как раз хотел сказать в комментах. Если в задаче явно не сказанно какое-то ограничение, то его нет. кролику не запрещено идти по диагонали. т.е. по умолчанию это надо учитывать. 45 градусов... интересно, могут ли быть другие углы.
если мы поварачиваем даже на 45 - то у нас есть как бы дырка - половина пустой клетки-грядки. считается ли, что квадрат полностью заполнен грядками с морковкой.. может да, может нет. может, нужен такой квадрат, что в нём нет ни одной целой грядки без морковки. а части могут быть. тогда возможны и другие углы.
Когда уже есть опыт и понимание - то да, помогает. Я бы сказал, что ИИ это такой быстрый интерфейс мозг-компьютер. Да, он требует сначала письменного рассужденияя, потом быстро генерирует код, которы понимается сразу на скорости чтения. И его достаточно безопасно с или без изменений можно влить. Понимаешь, что делаеть - да, отличный и быстрый результат.
Но вот беда, если не понимаешь, или понимаешь не до конца. Всякое может быть. Например, "реши уравнение 4х = 8". Овет: "-2 * i^2". хм.. странно что ответ какой-то сложнее, чем я ожидал, но математика была так давно... не помню, но вроде бы похоже... что-то такое проходили.. ну ка, wolfram alpha, надо проверить. О и правда 8. "git push origin solution".
Ну, видимо, я глубоко копаю. Первый вопрос, да, я знаю что весь тулинг с описанием собирается и подставляется в промпт. Кстати, системный он или не системный вообще без разницы. Современный messages array формат через тот же jinja template (transformers как минимум) генерит просто текст. Т.е. input - длиннющий текст. array of chars. который потом токенезируется в array of tokens. Если тулов много, интересно как собрать релевантный набор, чтоб оно влезло в контекст, т.к. как правило он огромный и забит бесполезной ерундой "ты опытный программист, а твоя мама больна раком и если ты не сделаешь эту таску не заработаешь денег и вообще капец" (почему это бесполезно - заслуживает отдельной статьи для объяснения. ведь кажется, что работает).
Ну и по второму " работаю с моделью в таком режиме, что она точно знает, что ожидаемый формат вывода - это json": так вот наш "array of tokens", он же prompt, попадает в условный метод model.encode(prompt_tokens). Результатом являются просто новые токены, которые, как кажется модели, наиболее подходящие здесь.
Далее токены -> текст и мы его видим. Модель не знает, не понимает что там пользователь хотел. никаких json-ов, yaml-ов или чего там нет. всё что можно гарантировать, что там будет string.
Что-то не до конца раскрыт момент про пример "Какой был рост ВВП Японии в 2024 году?"
А именно, как на основании этого промпта LLM-ка вообще понимает, что надо дёрнуть web_search, а не internet_search, или там open-file "c:\gdp.ja.txt".
Далее работа с ответами. LLM в ответе (model.encode) должна написать что-то, что можно распарсить в вызов тула с параметрами. А на сколько я разбирался (нужно обновить данные), невозможно вообще никак, совсем никак, архитектурно фундаментально невозможно гарантировать, чтоб модель, напримре сгенерировала json с foo равным 1. Да, можно сейчас побежать в chatgpt и попросить и она даже сгенерит. Но это всё - особые усилия и тренировки датасета, чтобы вероятность этого ответа стремилась к 1. Но она никогда не равна. Т.е. в ответе может быть и невалидный json, скобка лишния или лишний текст, или не так названо поле, или текст после ответа и т.п. Любые попытки это причесать - это враппер вокруг LLM на низком уровне. Изменилось ли тут что-нибудь?
как-то неаккуратненько: yq: Error running jq: ScannerError: while scanning for the next token found character that cannot start any token in "<stdin>", line 15, column 1.
Да, самый топ на сегодняшний день - это или оригинальные силиконовые свитчи, или FSR, у которых очень хорошо настраивается чувствительность и можно играть 18+ ног сложности.
Я когда-то тоже так делал: 2 пластины из стеклотекстолита (залудил). нижняя длинная и 2 отверстия под крпеление. верхняя короче.. между ними на концах деэлектрик. вот такой бутерброд. Далее датчик в термоусадку и получается вполне годно. неубиваемо, работает 10+ лет. Хотя не идеально. наверное ног до 13-14 можно играть.
Почему-то вспомнился анекдот. В нашем сельхозе мы изобрели новый комбайн ГрибочекГПТ4000. Теперь комбайнёру осталось найти гриб и .. чик - остальное дело техники.
Обнови страницу... не знаю где. treesitter завезли, emacs на него переходит. да и вообще много чего произошло. макрос use-package теперь влит в emacs, некоторые альтерантивные подходы по управлению пакетами интегрированны через use-package и работают на уровне package/package-vc. LSP тоже озаботились.
Там ещё конечно есть куда расти с инициализацией emacs и best practices/guide lines для emacs. но в целом жить очень даже можно.
Есть люди, которые сидели на vim, перешли на emacs + evil mode, но в последствии поняли, что это излишне и отказались от evil. но, тут каждому своё.
История заходит на второй круг. Был же mesos - который прям оркестратор, вот тебе ресурсы, абстракция и менеджмент, пиши всё что надо... Да, у него свои проблемы были, одна сборка чего стоила. Появился кубик и все туда побежали..
На фоне этого, тот Hashicorp Nomad появился, который архитектурно, намного более грамотно построен и всё там было перспективно... но опоздал на рынок, а потом уже просто перестал успевать.
Потом ещё что-нибудь сделают - аля кубик, но без лишнего, и это будет 3ий круг.
Конечно, "вынести из драйверов и system space часть кода в user spacе и отдать на откуп другим" поможет ситуации. Но это и есть - давайте напишем nomad/mesos
единственное, когда нужно было "подтолкнуть", это когда не live cd, а я ставил минимальную базовую систему. там вообще ничего не было. dhclient - и всё работает. Если live cd с GUI, то там как минимум network manager. может быть проблема с livecd? наверное может. может ли это быть проблема в сети или чём-то другом - не исключено.
Смешались кони и люди. OpenSource - открытые исходники. Вообще-то всё. А всё остальное - это лицензии (хитрые и не очень), процессы, список мейнтенеров и тп. Форкаешь проект, вставляешь мейнтейнерами кого хочешь и смотришь как за тобой тянутся люди... или не тянутся.
На 15% кликбейт, на 85% правда: makefile это не "запускатель тасок". он делает файл(ы), буквально. make file(s). Если это понять - всё становится проще.
Ещё есть всякие штуки, которые для тестов инфраструктуры используются и прочих провер. На вскидку, ChefSpec (он же был Inspec, он же вырос из serverspec, хз как там лицензия сейчас). Но https://serverspec.org/ вроде бы живой. пиши себе тесты да и красиво показывай.
От ансибла тоже что-то было, только жутко тормознутое.
Конечно, bash наше всё и можно сделать лучше, но скрипт очень "так-себе". Но уж если очень хочется, https://github.com/bats-core/bats-core можно и на нём тесты написать
Проблемы devops: yaml.
хм ..
Что такое ансибл? Это:
- нечёткая структура переменных - хочу здесь, хочу там
- роли, но не роли (много подводных камней), может группа тасков?
- группа тасков, но произвольный вызывать без кастылей нельзя
- плейбуки, но толку мало, так что там? таски или роли внутри? смешивать нельзя
- переменные как бы внутри сущности, но нет, глобальные
- хочешь написать простую логику: вот тебе ямл, внутри jinja, а там фильтр
- вот так переменную использовать нельзя, а вот так - попробуй
- when: хм, там дальше строка или jinja? а, просто..
- замечательный перфоманс: 10 тривиальных задач на 2ms каждая, стартанём python процесс, импортнём вообще всё, до чего руки дотянутся, потратим кучу времени, выполним 2+2 и сдохнем. и так по кругу 1000 раз. Зато удобно, пока плейбук работает, можно на обед сходить.
- непредсказуемый инвентори: какая там у него структура, куда что складывать? а если мне файлы надо передать, но они специфичны для энва - это инвентори или просто папка files? Держать внутри инвентори или рядом с плейбуками? а почему файлы не ищутся в инвентори, но в плейбуках и ролях.
и много много других приколов. Вот и получается, что якобы умная замена bash. но.
ansible удобно где надо hello world, но там и bash справится и проще взять его,
а где не hello world и bash уже не вывозит... хм... ансибл тоже что-то не вывозит.
Нет, не ясно. В задаче нет слов "матрица", "оси", "параллелен".
единственное что спасает и за что можно затецпиться "...сторону квадрата, заполненного морковками полностью".
конечно, на живом интервью это всё проговаривается и уточняется - это норм.
на каких олимпиадах - такие вещи выверяются и условия задаются более точно.
вот кстати, ровно наоборот. как раз хотел сказать в комментах. Если в задаче явно не сказанно какое-то ограничение, то его нет. кролику не запрещено идти по диагонали. т.е. по умолчанию это надо учитывать. 45 градусов... интересно, могут ли быть другие углы.
если мы поварачиваем даже на 45 - то у нас есть как бы дырка - половина пустой клетки-грядки. считается ли, что квадрат полностью заполнен грядками с морковкой.. может да, может нет. может, нужен такой квадрат, что в нём нет ни одной целой грядки без морковки. а части могут быть. тогда возможны и другие углы.
Когда уже есть опыт и понимание - то да, помогает. Я бы сказал, что ИИ это такой быстрый интерфейс мозг-компьютер. Да, он требует сначала письменного рассужденияя, потом быстро генерирует код, которы понимается сразу на скорости чтения. И его достаточно безопасно с или без изменений можно влить. Понимаешь, что делаеть - да, отличный и быстрый результат.
Но вот беда, если не понимаешь, или понимаешь не до конца. Всякое может быть.
Например, "реши уравнение 4х = 8". Овет: "-2 * i^2".
хм.. странно что ответ какой-то сложнее, чем я ожидал, но математика была так давно... не помню, но вроде бы похоже... что-то такое проходили.. ну ка, wolfram alpha, надо проверить. О и правда 8. "git push origin solution".
Ну, видимо, я глубоко копаю. Первый вопрос, да, я знаю что весь тулинг с описанием собирается и подставляется в промпт. Кстати, системный он или не системный вообще без разницы. Современный messages array формат через тот же jinja template (transformers как минимум) генерит просто текст. Т.е. input - длиннющий текст. array of chars. который потом токенезируется в array of tokens.
Если тулов много, интересно как собрать релевантный набор, чтоб оно влезло в контекст, т.к. как правило он огромный и забит бесполезной ерундой "ты опытный программист, а твоя мама больна раком и если ты не сделаешь эту таску не заработаешь денег и вообще капец" (почему это бесполезно - заслуживает отдельной статьи для объяснения. ведь кажется, что работает).
Ну и по второму " работаю с моделью в таком режиме, что она точно знает, что ожидаемый формат вывода - это json": так вот наш "array of tokens", он же prompt, попадает в условный метод model.encode(prompt_tokens). Результатом являются просто новые токены, которые, как кажется модели, наиболее подходящие здесь.
Далее токены -> текст и мы его видим. Модель не знает, не понимает что там пользователь хотел. никаких json-ов, yaml-ов или чего там нет. всё что можно гарантировать, что там будет string.
Что-то не до конца раскрыт момент про пример "Какой был рост ВВП Японии в 2024 году?"
А именно, как на основании этого промпта LLM-ка вообще понимает, что надо дёрнуть web_search, а не internet_search, или там open-file "c:\gdp.ja.txt".
Далее работа с ответами. LLM в ответе (model.encode) должна написать что-то, что можно распарсить в вызов тула с параметрами. А на сколько я разбирался (нужно обновить данные), невозможно вообще никак, совсем никак, архитектурно фундаментально невозможно гарантировать, чтоб модель, напримре сгенерировала json с foo равным 1.
Да, можно сейчас побежать в chatgpt и попросить и она даже сгенерит. Но это всё - особые усилия и тренировки датасета, чтобы вероятность этого ответа стремилась к 1. Но она никогда не равна. Т.е. в ответе может быть и невалидный json, скобка лишния или лишний текст, или не так названо поле, или текст после ответа и т.п. Любые попытки это причесать - это враппер вокруг LLM на низком уровне. Изменилось ли тут что-нибудь?
как-то неаккуратненько:
yq: Error running jq: ScannerError: while scanning for the next token found character that cannot start any token in "<stdin>", line 15, column 1.
Да, самый топ на сегодняшний день - это или оригинальные силиконовые свитчи, или FSR, у которых очень хорошо настраивается чувствительность и можно играть 18+ ног сложности.
Я когда-то тоже так делал: 2 пластины из стеклотекстолита (залудил). нижняя длинная и 2 отверстия под крпеление. верхняя короче.. между ними на концах деэлектрик. вот такой бутерброд. Далее датчик в термоусадку и получается вполне годно. неубиваемо, работает 10+ лет. Хотя не идеально. наверное ног до 13-14 можно играть.
ЮнитТест: чистить_картошку возвращает ... почищенную картошку.
- Человек, почисти картошку!
// берёт ножек и чистит
- ЛЛМ, почисти картошку!
// берёт ваши трусы и чистит
Тест зелёный, впрод.
Почему-то вспомнился анекдот. В нашем сельхозе мы изобрели новый комбайн ГрибочекГПТ4000. Теперь комбайнёру осталось найти гриб и .. чик - остальное дело техники.
Обнови страницу... не знаю где. treesitter завезли, emacs на него переходит. да и вообще много чего произошло. макрос use-package теперь влит в emacs, некоторые альтерантивные подходы по управлению пакетами интегрированны через use-package и работают на уровне package/package-vc. LSP тоже озаботились.
Там ещё конечно есть куда расти с инициализацией emacs и best practices/guide lines для emacs. но в целом жить очень даже можно.
Есть люди, которые сидели на vim, перешли на emacs + evil mode, но в последствии поняли, что это излишне и отказались от evil. но, тут каждому своё.
Или с aptly (https://www.aptly.info/). Но это самостоятельный тул, я не знаю, используют ли его в core в самом Debian-е или нет..
История заходит на второй круг. Был же mesos - который прям оркестратор, вот тебе ресурсы, абстракция и менеджмент, пиши всё что надо... Да, у него свои проблемы были, одна сборка чего стоила. Появился кубик и все туда побежали..
На фоне этого, тот Hashicorp Nomad появился, который архитектурно, намного более грамотно построен и всё там было перспективно... но опоздал на рынок, а потом уже просто перестал успевать.
Потом ещё что-нибудь сделают - аля кубик, но без лишнего, и это будет 3ий круг.
Конечно, "вынести из драйверов и system space часть кода в user spacе и отдать на откуп другим" поможет ситуации. Но это и есть - давайте напишем nomad/mesos
единственное, когда нужно было "подтолкнуть", это когда не live cd, а я ставил минимальную базовую систему. там вообще ничего не было. dhclient - и всё работает. Если live cd с GUI, то там как минимум network manager. может быть проблема с livecd? наверное может. может ли это быть проблема в сети или чём-то другом - не исключено.
Кони и люди были. Смешалось тёплое и мягкое. Причём тут размер? Форкать всем миром, это чтобы было 7млдр+ копий?
Смешались кони и люди. OpenSource - открытые исходники. Вообще-то всё. А всё остальное - это лицензии (хитрые и не очень), процессы, список мейнтенеров и тп. Форкаешь проект, вставляешь мейнтейнерами кого хочешь и смотришь как за тобой тянутся люди... или не тянутся.