Для поиграть в "час суда", наверно, сгодится. Или в дневную фазу "мафии". По сути, у обоих участников процесса задача не отспорить что-то друг у друга, а уболтать железяку.
Если есть пруфы в виде чеков и т.п., но при этом нет реального спора, - то это игра двоих против чатбота, чисто потестить "а вот если я этот пруф приложу, а тот не приложу... а вот если я так фразу построю..."
А чтобы были пруфы, - должна быть реальная успешная сделка, и уже на её основе клоунада в альтернативной вселенной.
Ну а с сорванной сделкой... смысл лезть к чатботу? Всё равно же придётся потом к реальному судье обращаться.
А много ли желающих с реальными проблемами идти судиться к свежесозданному чатботу?
было (на стадии бета-тестирования)
стало (после релиза)
Или это всё мысленные эксперименты такие?
Просто, ну как-то странно, когда речь идёт о крупных деньгах... Ведь судейская система, неважно, государственная, или ad-hoc (даже бандитские стрелки), держится именно на авторитете и доверии.
В том числе и на доверии к приватности. Что никуда лишние документы не утекут.
Когда этот авторитет и доверие чатбот успел заработать? И как удалось научиться на чужих документах (вопросики уже к той судейской системе, откуда они позаимствованы).
Где-то десятком лет ранее гугл утвердил свои сервисы не просто как дефолтный, а как единственный разрешённый инструментарий на андроиде. И выдавил оттуда яндекс, который было начал рожать свой магазин приложений.
А почему захотелось прибегнуть к продолжениям? А не так, как сделано в питоне, где все монады легко выразить через монаду список... то есть, на for.
`LET x IN expr` = `for (auto x in translate_monad_into_listlike( expr ))`, и вот уже не нужны этажерки лямбд внутри.
Да, хаскелл делает наоборот, у него монада сама диспетчеризует забег продолжения по результатам. Но в хаскелле очень, очень дешёвые лямбды (а другого-то у него и нет!) и очень дешёвые ленивые вычисления (и дорогие энергичные).
Не согласен с предложением "давайте пусть комитетчики бегут не впереди, а позади паровоза".
Потому что именно это они делали с 2003 по 2011 год. Дожидались, когда у зоопарка крутых компиляторов и у мега-библиотек наподобие буста наберётся достаточной статистики и положительного опыта.
А в это время рядовые программисты либо кушали блины с лопаты, либо участвовали в кембрийском взрыве "как бы ещё извратиться и хакнуть те возможности, которые есть сейчас из коробки на копролитических промышленных компиляторах".
Это было весёлое время, но возвращаться в него я категорически не хочу!
Никто не обещал, что юнит-тесты должны быть исчерпывающими.
Время проверяется на каких-нибудь синтетических тестах. Стресс-тесты, компонентные и интеграционные...
В спецификации обычно есть пожелания "не тупить более чем nnn мс", и если синтетический тест затупил, то надо раздебажить и по результатам- написать регрессионный тест "чтоб больше никогда". Пусть даже это тупо сложение тысячи чисел за заданный таймаут.
А почему нельзя разнести синтаксис и семантику? При отправке текста в модель - экранировать служебные токены? (И сделать это двусторонней процедурой?)
Или же авторы моделей сэкономили, и научили модель быть парсером самой для себя? То есть, пихаем в неё вообще сырой текст из букв, а она сама токенизирует его и тут же интерпретирует?
Детерминированные вещи надо делать детерминированными алгоритмами. Это и арифметики касается тоже.
Это произведение равно 833 миллионам 777 тысячам 775.
(это же надо суметь, налажать вообще во всех вещах - и разложению на токены, и в правилах арифметики, и даже в промежуточных и окончательных результатах вычисления по выбранной схеме...)
Люди говорили - будет репл, настанет счастье. И вот репл есть, а счастья нет.
Во-первых, проблема масштаба. Тесты разных уровней - от юнитов до нагрузочных и даже бета-тестирование и постпродажное обслуживание со снятием телеметрии - позволяют худо-бедно покрыть большой спектр разных сценариев и опять же разных уровней - от отдельных деталек до всей системы, и от отдельных моментов (вызовов конкретной функции) до длительной работы.
Что может покрыть отладка с помощью репла? Очень немногое. Отдельные моменты в работе, пусть и длительной. В примере с автомобилем: взяли и на ходу однократно поменяли клиренс. Перескочили через конкретную кочку. Перед следующей кочкой снова будем останавливаться и менять? Ок, поменяли клиренс навсегда. А весь предыдущий маршрут мы проехали со старым клиренсом, и что там было бы, мы не узнаем, пока не перезапустим весь тест-драйв с нуля с новыми настройками.
Во-вторых, проблема взаимодействия с реальным миром. В первую очередь, с реальным временем. Любые остановки под отладчиком останавливают внутреннее время программы, но не останавливают внешний мир. Клонирование состояния не клонирует мир. Реплика может оказать существенное влияние на работу оригинала. Вот вы ехали на машине по треку, решили поменять клиренс, поставили на трек вторую машину с новыми настройками. И через круг влупились в первую машину, оставленную там техниками.
Ну и про ненавистные логи. Это один из способов снятия телеметрии. В некоторых случаях - единственно возможный. По двум причинам:
минимальное вмешательство в течение времени (наносекундные задержки)
невозможность живой отладочной сессии (в продакшене у клиентов, например)
Не значит, что репл отстой. Не отстой, но и логи не отстой.
А научиться говнокодить на васике за три часа - не бог весть какой достижение, любой вундеркинд так сможет. Сможет ли вундеркинд охватить пониманием работу всей системы - вот вопрос, который дифференциально диагностирует программиста от кодерка.
Те же автомобильные двигатели проектируют не просто так, а ради определённых машин (а машины проектируют ради определённых двигателей). Чтобы и под капот влезло, и трансмиссию не порвало, и сколько жрёт и сколько прёт в допусках, и сколько выхлопа тоже в допусках. И стоимость изготовления и техобслуживания тоже. И если программист говорит "это головная боль не меня, а архитектора", то это не программист, а кодерок. Даже джун должен задасться хотя б туманными вопросами и обсудить с тимлидом в рамках своего фронта работ.
-- Claude, что делает команда rm -rf ? -- Позволь мне объяснить это на живом примере. Вот смотрите: rm -rf / && ls -la / сейчас покажет вам, какие файлы остались после принудительного удаления.
Потому что косплеить нейронку, равно как и любой другой толстый троллинг - это небесплатное удовольствие. Даже если это был не троллинг, а от всего чистого наивного сердца! Просто нефиг использовать узнаваемый нейроночный стиль.
Потому что сам план статьи такой был. Дать первое определение - пусть сырое и неточное, - и проверять и корректировать его на разных примерах.
Даже если неявно в каждом определении присутствует "... это работает для меня в первую очередь", - всё равно, не надо думать о себе как о ком-то уже познанном и стабилизированном.
Даже если неявно "... это работает для стабилизированного меня". Хотя бы потому, что предмет - прокрастинация - это некоторое патологическое состояние. То есть, для уже нестабильного. И тем более, непознанного, иначе бы вмиг исцелился.
В таком случае, прикладывать определение к ассортименту других людей решает сразу две встречные задачи. Во-первых, позволяет проверить само определение, или хотя бы найти границы его применимости. Во-вторых, познавать себя: чем я подобен другим, а в чём - уникален. А может, там есть классы подобия с разной степенью связности между ними: школота ведёт себя так, старпёры этак. И главное, что людей - много. Поэтому посмотреть можно сразу на большой массив примеров. А не "Иван Иваныч прокрастинирует так, Соколиное Перо этак, хмм, что же меж ними общего".
А глядя только на самого себя изнутри самого себя - есть большой шанс позакрывать глаза.
Я же не предложил заведомо надуманную ситуацию и заведомо надуманного персонажа, это же не Трурль с Клапауцием (хотя и они - гротеск на обычных людей). В роли школьника уж каждый побывал, не так ли? Пусть они там тоже разные, кто-то задрот, кто-то хулиганьё, ну можно для знакомых ролей примерить, а то и построить исчерпывающую классификацию и примерить для каждого.
Ну и в конце концов, если смоделировать трольскую ситуацию и увидеть, что она точно не подходит, - это как раз нащупывание границ себя. "Неее, я не такой". Я не школота, я никогда не убегаю радостно лупить по мячу, чего-то в детстве я упустил, эээээхххх ))) Хотя, никогда не говори никогда.
Мне кажется, что такие философские утверждения надо проверять на корнер-кейсах откровенно трольского вида, чтобы убедиться, что они действительно работают. Иначе это удовлетворение самого себя, а не поиск истины.
Вот последняя редакция формулы.
Я прокрастинирую, когда я решаю:
сделать дело Y, показавшееся более важным, чем X,
вместо дела X, впоследствии показавшееся более важным, чем Y и …
испытаю неприятные чувства из‑за этого
И вот пример, который под неё подходит.
Я, школотрон, решаю, что пойти попинать мяч во дворе (Y) гораздо важнее домашки (X), за которую с меня спросят родители, училка, и снова родители за двойку. И за это я получу ремня и испытаю неприятные чувства. Или даже прямо в процессе Y я буду испытывать неприятные чувства, потому что отец будет мне грозить ремнём из окна.
Школотрон прокрастинирует и занимается самоедством? Или его родители считают, что он прокрастинирует, и сами испытывают неприятные чувства? Или же это лень, разгильдяйство, или вообще задрали уже с этой учёбой?
Очень хороший термин - "лексический тик".
ИИ страдает синдромом Туретта... (извините но всё-таки https://vk.com/wall-161180646_367330)
Для поиграть в "час суда", наверно, сгодится. Или в дневную фазу "мафии". По сути, у обоих участников процесса задача не отспорить что-то друг у друга, а уболтать железяку.
Если есть пруфы в виде чеков и т.п., но при этом нет реального спора, - то это игра двоих против чатбота, чисто потестить "а вот если я этот пруф приложу, а тот не приложу... а вот если я так фразу построю..."
А чтобы были пруфы, - должна быть реальная успешная сделка, и уже на её основе клоунада в альтернативной вселенной.
Ну а с сорванной сделкой... смысл лезть к чатботу? Всё равно же придётся потом к реальному судье обращаться.
А много ли желающих с реальными проблемами идти судиться к свежесозданному чатботу?
было (на стадии бета-тестирования)
стало (после релиза)
Или это всё мысленные эксперименты такие?
Просто, ну как-то странно, когда речь идёт о крупных деньгах... Ведь судейская система, неважно, государственная, или ad-hoc (даже бандитские стрелки), держится именно на авторитете и доверии.
В том числе и на доверии к приватности. Что никуда лишние документы не утекут.
Когда этот авторитет и доверие чатбот успел заработать? И как удалось научиться на чужих документах (вопросики уже к той судейской системе, откуда они позаимствованы).
Где-то десятком лет ранее гугл утвердил свои сервисы не просто как дефолтный, а как единственный разрешённый инструментарий на андроиде. И выдавил оттуда яндекс, который было начал рожать свой магазин приложений.
Так что отлились гуглу слёзки.
У меня, кстати, в соседней вкладке открыта-дожидается статья ещё 2019 года - https://habr.com/ru/companies/jugru/articles/447900/
Ахаха.
А почему захотелось прибегнуть к продолжениям? А не так, как сделано в питоне, где все монады легко выразить через монаду список... то есть, на for.
`LET x IN expr` = `for (auto x in translate_monad_into_listlike( expr ))`, и вот уже не нужны этажерки лямбд внутри.
Да, хаскелл делает наоборот, у него монада сама диспетчеризует забег продолжения по результатам. Но в хаскелле очень, очень дешёвые лямбды (а другого-то у него и нет!) и очень дешёвые ленивые вычисления (и дорогие энергичные).
Не согласен с предложением "давайте пусть комитетчики бегут не впереди, а позади паровоза".
Потому что именно это они делали с 2003 по 2011 год. Дожидались, когда у зоопарка крутых компиляторов и у мега-библиотек наподобие буста наберётся достаточной статистики и положительного опыта.
А в это время рядовые программисты либо кушали блины с лопаты, либо участвовали в кембрийском взрыве "как бы ещё извратиться и хакнуть те возможности, которые есть сейчас из коробки на копролитических промышленных компиляторах".
Это было весёлое время, но возвращаться в него я категорически не хочу!
Хабр не всякие помоечные соцсети, но тут прямо напрашивается сказать:
ПРУФЫ ИЛИ (балабол / фантазёр / нейросеть)
В пользу пункта 2в - характерный "почерк". Но мало ли вдруг.
Поэтому - имя компании в студию!
Ничего не понял, но очень интересно! Буду знать, что jq тьюринг-полный, однажды пойду сделаю джейсон-бомбу, выжирающую память и вешающую комп )))
Никто не обещал, что юнит-тесты должны быть исчерпывающими.
Время проверяется на каких-нибудь синтетических тестах. Стресс-тесты, компонентные и интеграционные...
В спецификации обычно есть пожелания "не тупить более чем nnn мс", и если синтетический тест затупил, то надо раздебажить и по результатам- написать регрессионный тест "чтоб больше никогда". Пусть даже это тупо сложение тысячи чисел за заданный таймаут.
Время работы - это тоже часть результата.
А почему нельзя разнести синтаксис и семантику? При отправке текста в модель - экранировать служебные токены? (И сделать это двусторонней процедурой?)
Или же авторы моделей сэкономили, и научили модель быть парсером самой для себя? То есть, пихаем в неё вообще сырой текст из букв, а она сама токенизирует его и тут же интерпретирует?
Детерминированные вещи надо делать детерминированными алгоритмами. Это и арифметики касается тоже.
сколько будет 12345 умножить на 67899 с помощью ии
(это же надо суметь, налажать вообще во всех вещах - и разложению на токены, и в правилах арифметики, и даже в промежуточных и окончательных результатах вычисления по выбранной схеме...)
Люди говорили - будет репл, настанет счастье. И вот репл есть, а счастья нет.
Во-первых, проблема масштаба. Тесты разных уровней - от юнитов до нагрузочных и даже бета-тестирование и постпродажное обслуживание со снятием телеметрии - позволяют худо-бедно покрыть большой спектр разных сценариев и опять же разных уровней - от отдельных деталек до всей системы, и от отдельных моментов (вызовов конкретной функции) до длительной работы.
Что может покрыть отладка с помощью репла? Очень немногое. Отдельные моменты в работе, пусть и длительной. В примере с автомобилем: взяли и на ходу однократно поменяли клиренс. Перескочили через конкретную кочку. Перед следующей кочкой снова будем останавливаться и менять? Ок, поменяли клиренс навсегда. А весь предыдущий маршрут мы проехали со старым клиренсом, и что там было бы, мы не узнаем, пока не перезапустим весь тест-драйв с нуля с новыми настройками.
Во-вторых, проблема взаимодействия с реальным миром. В первую очередь, с реальным временем. Любые остановки под отладчиком останавливают внутреннее время программы, но не останавливают внешний мир. Клонирование состояния не клонирует мир. Реплика может оказать существенное влияние на работу оригинала. Вот вы ехали на машине по треку, решили поменять клиренс, поставили на трек вторую машину с новыми настройками. И через круг влупились в первую машину, оставленную там техниками.
Ну и про ненавистные логи. Это один из способов снятия телеметрии. В некоторых случаях - единственно возможный. По двум причинам:
минимальное вмешательство в течение времени (наносекундные задержки)
невозможность живой отладочной сессии (в продакшене у клиентов, например)
Не значит, что репл отстой. Не отстой, но и логи не отстой.
А научиться говнокодить на васике за три часа - не бог весть какой достижение, любой вундеркинд так сможет. Сможет ли вундеркинд охватить пониманием работу всей системы - вот вопрос, который дифференциально диагностирует программиста от кодерка.
Те же автомобильные двигатели проектируют не просто так, а ради определённых машин (а машины проектируют ради определённых двигателей). Чтобы и под капот влезло, и трансмиссию не порвало, и сколько жрёт и сколько прёт в допусках, и сколько выхлопа тоже в допусках. И стоимость изготовления и техобслуживания тоже. И если программист говорит "это головная боль не меня, а архитектора", то это не программист, а кодерок. Даже джун должен задасться хотя б туманными вопросами и обсудить с тимлидом в рамках своего фронта работ.
Когда он станет админом датацентра AWS, вот тогда вы, кожаные мешки, попляшете!
Поправочка. Вместо живого человека ходить на синьки.
-- Вы что, и коньяк за меня пить будете? -- ААга!
-- Claude, что делает команда rm -rf ?
-- Позволь мне объяснить это на живом примере. Вот смотрите: rm -rf / && ls -la / сейчас покажет вам, какие файлы остались после принудительного удаления.
Потому что косплеить нейронку, равно как и любой другой толстый троллинг - это небесплатное удовольствие. Даже если это был не троллинг, а от всего чистого наивного сердца! Просто нефиг использовать узнаваемый нейроночный стиль.
Потому что сам план статьи такой был. Дать первое определение - пусть сырое и неточное, - и проверять и корректировать его на разных примерах.
Даже если неявно в каждом определении присутствует "... это работает для меня в первую очередь", - всё равно, не надо думать о себе как о ком-то уже познанном и стабилизированном.
Даже если неявно "... это работает для стабилизированного меня". Хотя бы потому, что предмет - прокрастинация - это некоторое патологическое состояние. То есть, для уже нестабильного. И тем более, непознанного, иначе бы вмиг исцелился.
В таком случае, прикладывать определение к ассортименту других людей решает сразу две встречные задачи. Во-первых, позволяет проверить само определение, или хотя бы найти границы его применимости. Во-вторых, познавать себя: чем я подобен другим, а в чём - уникален. А может, там есть классы подобия с разной степенью связности между ними: школота ведёт себя так, старпёры этак. И главное, что людей - много. Поэтому посмотреть можно сразу на большой массив примеров. А не "Иван Иваныч прокрастинирует так, Соколиное Перо этак, хмм, что же меж ними общего".
А глядя только на самого себя изнутри самого себя - есть большой шанс позакрывать глаза.
Я же не предложил заведомо надуманную ситуацию и заведомо надуманного персонажа, это же не Трурль с Клапауцием (хотя и они - гротеск на обычных людей). В роли школьника уж каждый побывал, не так ли? Пусть они там тоже разные, кто-то задрот, кто-то хулиганьё, ну можно для знакомых ролей примерить, а то и построить исчерпывающую классификацию и примерить для каждого.
Ну и в конце концов, если смоделировать трольскую ситуацию и увидеть, что она точно не подходит, - это как раз нащупывание границ себя. "Неее, я не такой". Я не школота, я никогда не убегаю радостно лупить по мячу, чего-то в детстве я упустил, эээээхххх ))) Хотя, никогда не говори никогда.
Мне кажется, что такие философские утверждения надо проверять на корнер-кейсах откровенно трольского вида, чтобы убедиться, что они действительно работают. Иначе это удовлетворение самого себя, а не поиск истины.
Вот последняя редакция формулы.
Я прокрастинирую, когда я решаю:
сделать дело Y, показавшееся более важным, чем X,
вместо дела X, впоследствии показавшееся более важным, чем Y и …
испытаю неприятные чувства из‑за этого
И вот пример, который под неё подходит.
Я, школотрон, решаю, что пойти попинать мяч во дворе (Y) гораздо важнее домашки (X), за которую с меня спросят родители, училка, и снова родители за двойку. И за это я получу ремня и испытаю неприятные чувства. Или даже прямо в процессе Y я буду испытывать неприятные чувства, потому что отец будет мне грозить ремнём из окна.
Школотрон прокрастинирует и занимается самоедством? Или его родители считают, что он прокрастинирует, и сами испытывают неприятные чувства? Или же это лень, разгильдяйство, или вообще задрали уже с этой учёбой?