All streams
Search
Write a publication
Pull to refresh
2
0
Send message

контрибьютить мог бы кто угодно, хоть даже Гитлер

История на тему: лицензия библиотеки json.org (парсер для JSON) в свое время включала в себя слова "The Software shall be used for Good, not Evil". По этому поводу в свое время была небольшая драма, когда в Debian решили, что это не свободная лицензия.

Был после этого и исторический анекдот. IBM купила коммерческую лицензию на эту либу, и автор шутил, что IBM официально купила у него право использовать JSON парсер чтобы творить ЗЛО.

EDIT: рано отправил.

Я вот не настолько прошаренный в работах Карла Маркса, и мне казалось, что он был интернационалистом, а не антисемитом...

Точно 99% избегаете? При том, что одной хватит, чтобы разрушить всю программу.

Если более серьезно, то на мой взгляд основной источник ошибок – работа с указателями/ссылками, обработка ошибок и внезапный null (в языках, которые это разрешают), и многопоточность. От этих вещей Раст защищает неплохо. Почти то же самое могу сказать про ТайпСкрипт – если оно протайпчекалось, то undefined is not a function в рантайме, скорее всего, не полетит (но тайпчекер там очень легко заткнуть, к сожалению).

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

Ехал файнал через файнал,

Видит файнал – в файнал файнал

Сунул файнал файнал в файнал,

Файнал файнал файнал файнал.

Полностью согласен: корректна программа на C++ или нет можно понять исключительно по ее исходному коду. Ассемблерный код в этом совершенно бесполезен.

надо обязательно знать во что оно именно компилируется в асме

Все ещё хуже. Можно посмотреть ассемблерный код, убедиться, что все в порядке, а потом меняется один трёх десятков флагов компилятора, и программа начинает выполнять rm -rf /. Почему? А вон там где-то есть UB, и компилятор по Стандарту может выдавать в принципе любой код в таком случае.

правачки или левачки

Вспоминается Довлатов

- Толя, - зову я Наймана, - пойдемте в гости к Леве Друскину.
- Не пойду, - говорит, - какой-то он советский.
- То есть, как это советский? Вы ошибаетесь!
- Ну, антисоветский. Какая разница.

Я прочитал пост по ссылке, и там слегка не любят Томасоза и очень сильно Герба Саттера, но последний же как раз первого не стал защищать, непонятно как-то кто на чьей стороне. И давно ли Карл Маркс стал антисемитом тоже интересный вопрос...

Посоветуют не заниматься маниловщиной и вернуться на грешную землю? Когда в прошлый раз люди хотели порешать вопросы с UB в плюсах, на выходе получился Раст. UB, ЧСХ, остались.

В Расте тонкости обычно класса "да как же заставить этот @!#?@! код компилироваться?!" и если начать копать, почему же именно он не компилируется и как это исправить, то кроличья нора может оказаться весьма глубока. Если безопасный Раст скомпилировался, то он почти наверняка работает как надо.

В стандарте языка они есть, увы и ах. Вопрос со звёздочкой: зачем их ввели в стандарт?

values.yaml 😅 есть внутренняя дока и примеры как что вписывается и куда (ну и ещё, конечно же, ctrl-c,ctrl-v из соседнего проекта). чтобы выкатить новую версию обычно используют --set и передают imageTag

Это получше, чем прям весь Deployment писать, да. Из values.yaml можно попробовать сделать терпимый интерфейс для продуктовых программистов, особенно если к нему прикрутить систему овероайдов (стейджинг/прод, например), а внутри темплейтов делать особую хелмовскую магию. Правда в какой-то момент разбирать пять уровней вложенности условий в земле становится неприятно даже тем, кому это по службе положено.

если replicas: 1, то мы не создаем объект pdb

Вот да, такого рода магию я и имел виду. Ради интереса: а maxUnavailable=0 и общий случай minAvailable=replicas вы отлавливаете?

EDIT: опечатка

Один чарт на все это интересная идея. Допустим, я продуктовый разработчик, что я делаю чтобы тупо выкатить новую версию? А если я хочу поменять количество реплик, или настройки HPA, или настройки readiness probe?

А здесь нас закрывает свои authorization и admission webhook

Это рабочий подход, особенно если ошибки явно выкидываются, а не как я иногда видел: Deployment есть, Replicaset есть, а подов нет. Начинаешь разбираться, смотришь на события и видишь, что ReplicaSet старательно пыьается создавать поды, а validation webhook не менее старательно их отбивает.

На самом деле я больше думал безопасность типа hostNetwork, а про PDB maxUnavailable=0 или minAvailable=1 при поде-синглтоне: оно работает нормально и все вроде ОК, но когда приходит пора апгрейдить кластер, процесс становится нетривиальным :)

Тонкости языка это ладно. Основная проблема плюсов, на мой взгляд, в том, что практически никто из людей не может писать на плюсах без UB. Ну то есть кто-то, наверное, может, есть люди которые стометровку за десять секунд бегают, но вот, например, Дедфуд, Великий и Ужасный, в своих способностях писать на C++ без UB не уверен. А если он не может, то что уж говорить об остальных...

Ну в плюсах есть RAII, умные указатели, this в методы как-то сам передается, ещё какой-то там синтаксический сахар, система типов пытается что-то там из себя изобразить... Пример того, что я имею в виду – Линус про C++ и программистов на нем (хотя конкретно этот письмо было и позже 2000, да).

Я согласен с тем, что C++ примерно в бесконечное число раз сложнее С, но это предмет для отдельного сра... обсуждение.

Вот не люблю Го, но давайте придерживаться фактов: этому языку уже 15 лет, то есть это примерно как плюсы в 2000 году. Хотя да, тогда плюсы именно и называли короткоживущей поделкой для тех, кто не смог в сишечку.

Если посмотреть на World in Conflict и Modern Warfare 2/3 в отрыве от всего остального, то первая выглядит скорее не как деконструкция, а как недостроенный штамп (unbuilt trope). Но, конечно, клюквенный Red Alert 2 уже был. С другой стороны, Massive Entertainment – шведы, фиг знает какие у них штампы и стереотипы. "Что хотел сказать автор" понять непросто.

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

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

Опять же, по воспоминаниям старые клавиатуры при нажатии Ctrl+Alt+Del выдавали специально обученное прерывание на очень низком уровне, прямо в железе, и именно поэтому такое сочетание в Windows NT выбрали как признак того, что пользователь находится у компа.

Information

Rating
Does not participate
Registered
Activity