Ariane-5G - как потерять миллионы всего за 40 секунд. Компьютер убийца.

Поделиться
HTML-код
  • Опубликовано: 7 янв 2025

Комментарии • 482

  • @DDEEXX02
    @DDEEXX02 3 года назад +39

    Эту историю читал лет 12 назад, в каком-то компьютерном журнале. Заголовок был, что-то "Самая дорогая программная ошибка". Спасибо, освежил память.

  • @flibustieros
    @flibustieros 3 года назад +70

    Проц с ядром:
    - системная ошибка, оверхед пула, кернел паник! Помогите!
    Логгер:
    - я просто запишу это, ок

    • @deeznucz8639
      @deeznucz8639 3 года назад +12

      Логгер: чувак с камерой из мемов

    • @wentysss
      @wentysss 3 года назад +3

      У логгера так то больше и нет задач, кроме как записывания состояния машины

  • @akuladon1488
    @akuladon1488 3 года назад +237

    Отличный выпуск
    Выпуски на ракетную тематику усиливают желание увидеть новую ракету в вашем исполнении

    • @150_Pounds_Of_Toxic_Substance
      @150_Pounds_Of_Toxic_Substance 3 года назад +1

      мне во время просмотра пришло письмо от гикбрейнса!

    • @Partizanex
      @Partizanex 3 года назад +2

      Неее пусть соберут генератор водорода кислорода работающий на солнечных Панелях.

  • @bashkirtsevich
    @bashkirtsevich 3 года назад +238

    Покрывайте код тестами. Покрывайте код тестов тестами. Покрывайте код тестов тестов тестами... (спустя несколько тысяч итераций) * переполнение стека *

    • @АндрейВарин-р4г
      @АндрейВарин-р4г 3 года назад

      :)

    • @dred77780
      @dred77780 3 года назад

      Жиза)))))

    • @stanislavk1546
      @stanislavk1546 3 года назад

      Стэка мозга

    • @dimasokolru
      @dimasokolru 3 года назад +7

      Сюда нельзя вставить изображение, но думаю что все видели картинки из серии «unit tests passed, integration failed». И здесь тоже, отдельно взятые тесты не помогли бы совсем, от слова «никак». А так, вообще говоря, если для тестов нужны свои тесты, то все эти тесты написаны неправильно.

    • @NoiroStar
      @NoiroStar 3 года назад

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

  • @KOT_BARSIK-_-
    @KOT_BARSIK-_- 3 года назад +314

    Жду когда ты соберёшь процессор. В оном из роликов ты обещал попробовать.
    Спасибо за 300 лайков.

    • @ShanikNJ
      @ShanikNJ 3 года назад +8

      +

    • @Chertolet1217
      @Chertolet1217 3 года назад +4

      +

    • @АртёмАртемьев-о6т
      @АртёмАртемьев-о6т 3 года назад +9

      Согласен но у меня видео вышло 15 мин назад а твой комментарий 20 мин назад. Как?

    • @UbijcaSmerti2005
      @UbijcaSmerti2005 3 года назад +10

      На макетке из транзисторов?

    • @LNLGv-ig8fb
      @LNLGv-ig8fb 3 года назад +2

      Как он тебе его соберет

  • @Сергей-ы3д8и
    @Сергей-ы3д8и 3 года назад +34

    Тоже программист и такие ситуации случаются очень часто: когда видишь ошибку и понимаешь, что код на все 100% должен работать правильно, но он почему-то этого не делает.

    • @_Goodless
      @_Goodless 3 года назад

      А почему такая уверенность, что он должен работать? Вы же помните, что у вас 16-bit и есть пределы. Если посмотреть на ситуацию в целом со стороны, то я бы никогда не посчитал полностью универсальным код, который рассчитан для работы при отклонениях не на все 360x180 градусов. Я бы добавил туда комментарий: # проверь штатный угол отклонения ракеты перед переносом кода.
      Ладно бы ещё величина переменной была бесконечной: например, высота орбиты в метрах, тут уж точно можно только взять некоторый запас, дальше которого ракета физически улететь не сможет, и записать в комментарии в коде, что при переносе его на новую ракету нужно проверять, не увеличить ли битность переменной согласно новым техническим характеристикам.

    • @aronarinkin8779
      @aronarinkin8779 3 года назад

      @@_Goodless комментарии наше всё

    • @dazbjaxnoname7611
      @dazbjaxnoname7611 3 года назад +4

      @@_Goodless Вы явно НЕ программист. Во первых - вы уже знаете проблему, поэтому и советуете. Во вторых - проблема не в коде, а в отказе от тестов перед запуском. В третьих - вот код ошибки( переполнение в E_BH - для справки)
      P_M_DERIVE(T_ALG.E_BH) := UC_16S_EN_16NS (TDB.T_ENTIER_16S * ((1.0/C_M_LSB_BH) * G_M_INFO_DERIVE(T_ALG.E_BH)))
      G_M_INFO_DERIVE(T_ALG.E_BH)) - именно та функция которая брала 64 бита вещественного и превращала в 16 бит со знаком действительное.
      Кстати - если вы не в курсе, то весь этот код не использовался вообще. Тоесть в 5-й версии, он не был нужен.

  • @aerospacer994
    @aerospacer994 3 года назад +4

    Ну, это просто супер! Рассказ про чью-то маленькую ошибку, которая обошлась очень дорого, и Антон на первых же кадрах говорит - знакомьтесь, Ариан-5, а показывает - Ариан-6 !!!
    Браво! )

  • @RetuZZik
    @RetuZZik 3 года назад +187

    Кстати норм заход для рекламы курсов тестировщиков был бы (:

    • @akazanova
      @akazanova 3 года назад +14

      Или для KSP 2

    • @Hbyh66_ug67
      @Hbyh66_ug67 3 года назад +1

      Любишь смотреть рекламу? 🤦🏻‍♂️

    • @arbuzno
      @arbuzno 3 года назад +2

      @@Hbyh66_ug67 Нет, просто отмечает подходящее для неё место в шуточной форме

  • @maxray7329
    @maxray7329 3 года назад +2

    Очень здорово, что не просто рассказал, но и наглядно показал как ведёт себя эта "особенность" в компиляторе.

  • @YN3_
    @YN3_ 3 года назад +44

    5:20 вместо МегаГерц (MHz) написано МиллиГерц (mHz). Монтажеру привет.

    • @TheRealNisem
      @TheRealNisem 3 года назад +8

      мощный проц)) надежный как швейцарские часы))

  • @urgebt
    @urgebt 3 года назад +57

    Ошибку устранили... вместе с тем, кто её допустил)

    • @jetspaser5935
      @jetspaser5935 3 года назад +2

      Мне кажется, такое только в нашей необъятной практикуют. Там все таки человеческий фактор сработал. Много, очень много людей допустило ошибку...

    • @alexanderXpetrov
      @alexanderXpetrov 3 года назад +4

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

    • @_Goodless
      @_Goodless 3 года назад

      Надеюсь, устранили окончательно, т.е. сделали возможной работу на любых углах отклонения вплоть до 180° (просто потому что здесь физически существует предел этого параметра)? А то окажется, что следующая ракета летит ещё круче и переменная снова не рассчитана на такие значения.

    • @jag0to
      @jag0to 6 месяцев назад

      @@jetspaser5935 к сожалению, нет. Компания боинг частенько практикует такое, когда кто-то заявляет о сбоях и о другой информации, которую не должен знать мир (Чтобы не начались суды и разбирательства).

  • @ДжекПиронович
    @ДжекПиронович 3 года назад +36

    7:40 аааааааа! Кто так строит? Лёха ты же инжинер.

    • @Rodogor_Hoenhaym
      @Rodogor_Hoenhaym 3 года назад +6

      он так видит.

    • @ДжекПиронович
      @ДжекПиронович 3 года назад +4

      @@Rodogor_Hoenhaym но это не оправдание. Строить надо по нормальному.

    • @Rodogor_Hoenhaym
      @Rodogor_Hoenhaym 3 года назад +9

      @@ДжекПиронович нормальный инженёр, нормально построил.

    • @robert1330
      @robert1330 3 года назад +6

      Да ладно гироскопов побольше и как струна полетит)

    • @ДжекПиронович
      @ДжекПиронович 3 года назад +6

      @@robert1330 это гиродины.

  • @Takumy_
    @Takumy_ 3 года назад +25

    1:29 лайк за KSP)

    • @lonegall
      @lonegall 3 года назад +2

      Как раз собирался это писать. Лайк.

  • @ИванЛысый-п8ы
    @ИванЛысый-п8ы 3 года назад +7

    Как у классика поётся: нельзя обосраться, но мы обосрались...

  • @denispleshakov9437
    @denispleshakov9437 3 года назад +22

    "Покрывайте свой код тестами", самое важное в этом видео.

    • @ZALMAN_AKILOV
      @ZALMAN_AKILOV 3 года назад

      Все ведь тестами не покрыть, производительность упадет. Там и так овер дофига параметров нужно вычислять.

    • @denispleshakov9437
      @denispleshakov9437 3 года назад +1

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

    • @Uni-Coder
      @Uni-Coder 3 года назад

      @@ZALMAN_AKILOV Производительность упадёт... гм... во время тестирования. Какая неожиданность

    • @ZALMAN_AKILOV
      @ZALMAN_AKILOV 3 года назад

      @@Uni-Coder спасибо огромное, учту в будущем, а то пишу и не тестирую совсем, вот я дэбил

    • @natteft6593
      @natteft6593 2 года назад

      не экономьте на быдлокодерах

  • @IgorYegorkin
    @IgorYegorkin 3 года назад +106

    16 бит хватит каждому

    • @Thor_Odinssen
      @Thor_Odinssen 3 года назад

      Ну что, битами померяемся?🤣

    • @gACZXC6ASDASD
      @gACZXC6ASDASD 3 года назад +3

      Мне и 8 заголову

    • @СашаИванов-у2ц3с
      @СашаИванов-у2ц3с 3 года назад

      а 512 битный процессор в 83 году на ВМФ СССР не хочешь?

    • @lava_frai
      @lava_frai 3 года назад +2

      @@gACZXC6ASDASD юзаю 4x битный 😎👍

    • @ledle3949
      @ledle3949 3 года назад

      @@СашаИванов-у2ц3с а поподробнее можно?

  • @ChronosPauL
    @ChronosPauL 3 года назад +15

    А меня научили: перед делением в коде проверь знаменатель на ноль, даже если нуля там не будет никогда в жизни. А вот если не проверишь - то ноль обязательно проскочит.

    • @rawil6751
      @rawil6751 3 года назад

      А это не сильно нагрузит систему?

    • @ChronosPauL
      @ChronosPauL 3 года назад +1

      @@rawil6751 деление грузит намного сильнее, чем проверка условия

    • @dmitryvodolazsky
      @dmitryvodolazsky 3 года назад +1

      Угу, а потом окажется, что не ноль, но достаточно малое число в знаменателе -- тоже даёт переполнение. И твоя проверка была ни о чём.
      Полностью корректная работа с ошибками возможна только при реализации подсистемы обработки исключений (типа try-throw-catch). Более простые варианты всегда имеют грабли или сильно неэффективны, а если расширять функциональность до полного подавления граблей, то в итоге почти та же схема обработки по сути и получится.

    • @ChronosPauL
      @ChronosPauL 3 года назад +1

      @@dmitryvodolazsky проверять double на ноль - надо быть альтернативно одаренным. А когда среднее или СКО считаешь - вполне рабочая схема. И не надо к мелочам докапываться, я указал принцип: даже там где нуля быть не должно, он может появиться

    • @dmitriibannikovasx
      @dmitriibannikovasx 3 года назад

      ахахах) Даже если знаменатель - константа, отличная от 0?

  • @МишаГго
    @МишаГго 3 года назад +13

    Мне аж захотелось в KSP поиграть

  • @MountCreekFlow
    @MountCreekFlow 3 года назад +6

    Ура! Компьютер убийца продолжается!

  • @Vlafder
    @Vlafder 3 года назад +12

    Вот это я понимаю дебагинг кода)

  • @grandmaster6437
    @grandmaster6437 3 года назад +8

    Классный выпуск, почаще бы такое, очень интересно

  • @dalipot2747
    @dalipot2747 3 года назад +1

    Я на кружке делаю всяких роботов на конкурсы.
    Мне дали задание: перенести программу с одного робота с какой-то штукой на подобие радара на другого. Я перенёс без изменений, ведь на моём она работала нормально. Но я не учёл, что у меня стоит Ардуино Уно, а там- Мини. Естественно там по-другому были воткнуты провода. Я включаю робота с новой программой, начинаю им управлять. Левая и правая гусеница работали нормально. Потом я начинаю вращать"Радар"... Робот начал хрустеть и передачу на радаре разломало к чёрту.
    Вот ещё один урок: всегда проверяйте пины на платах, пожалуйста.

  • @alexgordon4634
    @alexgordon4634 3 года назад +3

    Вся суть ошибки
    Машины должны быть безопасны для человека.
    Переполнение буфера для переменной:
    Машины должны убивать человека!

    • @alexgordon4634
      @alexgordon4634 3 года назад +1

      Беспилотные такси - игра в рулетку(с одним боевым патроном)

  • @alexanderXpetrov
    @alexanderXpetrov 3 года назад +10

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

    • @INshadow08
      @INshadow08 3 года назад

      даже в C# для проверки переполнения есть `checked`

    • @natteft6593
      @natteft6593 2 года назад

      @@INshadow08 ещё один недоязык

  • @АндрейПоляков-е5н
    @АндрейПоляков-е5н 3 года назад +16

    Ещё один рассказ, где все произошло из-за переполнения переменной. Топ1 баг!

    • @Евгений-п1л1ъ
      @Евгений-п1л1ъ 3 года назад +3

      А как весело отлавливать такие ошибки. Спасибо производителям потребительского железа за вагон оперативки. Можно без зазрения совести везде использовать double

    • @brusherru
      @brusherru 3 года назад +1

      @@Евгений-п1л1ъ однажды и дабл может переполниться :-Р

    • @ОлегВандрашек
      @ОлегВандрашек 3 года назад +3

      @@Евгений-п1л1ъ а потом калькулятор гиг ОЗУ жрёт

  • @lexelfs
    @lexelfs 3 года назад +1

    Так в чем был баг? Это из разряда - пришел баг с работы домой, весь грустный грустный. Жена спрашивает его, что случилось, дорогой? А баг и отвечает - ты прикинь, эти уроды что придумали... Издали какие то документы... Теперь я не баг... Я фича..

  • @HukoJlau_06
    @HukoJlau_06 3 года назад +17

    Спасибо! Теперь есть то что смотреть перед сном

  • @jesusdarkjewel9456
    @jesusdarkjewel9456 3 года назад +4

    Интересно Ариан 6 :) тоже сразу запустят с полезным грузом "Ну всё-же работало на 5 версии".

  • @ДжекПиронович
    @ДжекПиронович 3 года назад +8

    2:03 дорогой же фейерверк вышел.

  • @PavelByRuss
    @PavelByRuss 3 года назад +3

    Интересный контент. Спасибо за выпуск. Не знал про такую аварию.

  • @FenechKus
    @FenechKus 3 года назад +6

    неплохо неплохо)) KSP одобряем)

  • @НиколайБазанов-к6й
    @НиколайБазанов-к6й 3 года назад +22

    Кадры из ксп вставил, это мы одобряем

    • @Vlad_BY
      @Vlad_BY 3 года назад

      Ксп это что ? Подскажи если не сложно. Поиск по фото херню выдает индийскую. Не смотрел, интересно.

    • @НиколайБазанов-к6й
      @НиколайБазанов-к6й 3 года назад

      @@Vlad_BY Игра Kerbal space program

  • @kontruspech
    @kontruspech 3 года назад +14

    5:21 - MHZ..., а не миллиГерц

  • @РодомизРСФСР
    @РодомизРСФСР 3 года назад +20

    Можем спать спокойно, Арнольд грохнул Скайнет )

    • @chaoskrl
      @chaoskrl 3 года назад +2

      Поправка: Скайнет выбрал не тот тип переменной и грохнулся сам.

    • @dalipot2747
      @dalipot2747 3 года назад +2

      @@chaoskrl В этой вселенной Скайнет сделал харакири)

    • @chaoskrl
      @chaoskrl 3 года назад +1

      @@ssh7437 Этот точно сам развалился. Имел фатальный недостаток и кучу мелких багов.

    • @chaoskrl
      @chaoskrl 3 года назад

      @@ssh7437 Не, мой батя в конце 70-х это предсказывал. Только, поскольку был глубоко советским человеком, смотрел на это под другим углом, что мол "маленькая штучка моё" постепенно одерживала верх над идеей коммунизма.

    • @chaoskrl
      @chaoskrl 3 года назад

      @@ssh7437 да он и цитировал эту фразу "маленькая штучка моё" из какой-то советской классики. В этих "окнах" я так понял, что это лженаука какая-то, но у СССР были и чисто объективные причины, чтобы развалиться... Например, гиперцентрализация, которая сейчас и у ГОРФ есть.

  • @DmitryBy.company
    @DmitryBy.company 3 года назад +1

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

  • @aleksthorne
    @aleksthorne 3 года назад +1

    Подскажите пожалуйста кадры из какого фильма использовались в моменте с 9:13

  • @MrKim-pt2vm
    @MrKim-pt2vm 3 года назад +8

    нужно подобные ошибки в курс собирать и преподавать в университете, с более подробным разбором, а курс назвать, как не стать говнокодером

  • @sovrinfo
    @sovrinfo 3 года назад +2

    Спасибо за видео.Коммент в поддержку!

  • @iforand
    @iforand 3 года назад

    11:00 Чтобы компилятор выдавал предупреждения о "стремных" преобразованиях, нужно включить расширенные предупреждения в части преобразований. В gcc за это отвечает опция -Wconversion . В данном случае gcc честно предупреждает, что здесь результат преобразования может оказаться неожиданным.
    Да и вообще стоит включать -Wextra и -pedantic для пущей строгости. )

    • @mrkotyuk
      @mrkotyuk 3 года назад

      мне вообще интересно зачем он gcc использовал, есть же прям предназначеный для винды msvc...

  • @Mekc1m
    @Mekc1m 2 года назад +1

    1:55 - физика ksp)))
    Кто понял тот понял...

  • @Тень-д7р
    @Тень-д7р 3 года назад +1

    Отличный видос жду еще таких)

  • @УткинБогдан
    @УткинБогдан Год назад

    7:40 Бедные кербонафты, остались на орбите Кербина навсегда.

  • @ВикторРусин-е8э
    @ВикторРусин-е8э 3 года назад +10

    Привет создателям софта для Боинг 737MAX

    • @Noname-fl4cf
      @Noname-fl4cf 3 года назад

      Там нету так таковой ошибки, код работает так как написан без багов, там как бы сказать... Недоработка.

    • @ВикторРусин-е8э
      @ВикторРусин-е8э 3 года назад

      @@Noname-fl4cf От этого только страшнее. 2 самолета упало, погибло 315 человек.

    • @alexlinde6695
      @alexlinde6695 3 года назад +1

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

    • @Noname-fl4cf
      @Noname-fl4cf 3 года назад

      @@alexlinde6695 там просто был неисправен датчик угла атаки, а великие программисты из боинга не учли ситуацию что он может быть неисправен и давать неверные данные. При этом ПО брало данные только с 1го датчика, даже если остальные были исправны.
      Датчик показывал что нос задрат - ПО пыталось его опустить, хотя это было не так. А пилоты не предприняли неправильные действия по устранению проблемы + это был в обоих случаях взлет и как следствие низкая высота

  • @vad3eng769
    @vad3eng769 3 года назад +6

    За KSP респект конечно

  • @cb_q
    @cb_q 3 года назад +1

    legacy код - он такой. когда его писали были свои ТЗ и ограничения, т.е. условия, в которых он работает.
    может ввести в заблуждение, что он будет всегда работать во всех условиях, если он долго эксплуатировался и всегда работал корректно (в пределах условий ТЗ).
    на эти грабли многие наступают.

  • @ИльдусГильмутдинов-п9б

    4:10 Я не видел не разу не на одном смартфоне ни одного гироскопа, только датчики притяжения.

  • @aleksandrsgranicins3664
    @aleksandrsgranicins3664 3 года назад +1

    Спасибо за видео! Было очень интересно)

  • @ArduBlock_Project
    @ArduBlock_Project 3 года назад +1

    ! Ждём от Амперки - сборка простого процессора на простых транзисторах !

  • @veoramid
    @veoramid 3 года назад

    Читал байки про программистов еще во времена FIDOnet в районе 1996-2000 годов. Эта история там была. И еще несколько историй, в которых ошибки программистов привели к различным потерям. Найти бы тот текстик...

  • @aronarinkin8779
    @aronarinkin8779 3 года назад +1

    Спасибо за ксп амперка!... Кстати для ксп есть адд-он Kos он добавляет возможность программировать корабли на бэйсике

  • @alyuro79
    @alyuro79 3 года назад

    Чтоб "Протон" совершил подобный кульбит, так серьёзно не заморачивались - хватило пару штифтов спилить при установке датчиков угловой скорости ))

  • @votetonomer
    @votetonomer 3 года назад +16

    Лехина ракета обошлась дешевле…

    • @akaruiakarui9893
      @akaruiakarui9893 3 года назад +1

      А если не видно разницы..)

  • @paveltsukanov4488
    @paveltsukanov4488 3 года назад +3

    Статический анализатор кода мог бы найти эту ошибку

  • @kirillmux
    @kirillmux 3 года назад +8

    оп, на 5 минуте Амперка говорит 12-33 мегагерц а обозначил в ролике как mHz, то есть милигерцы. Ай-яй-яй, вот из-за таких вот мелочей ракеты и разбиваются. ))))

    • @AmperkaRuOfficial
      @AmperkaRuOfficial  3 года назад +3

      Блин. Точно. Столько раз смотрел и не видел...

  • @genabegemot6658
    @genabegemot6658 3 года назад +1

    Лайк за нарезку из KSP)) порадовал

  • @staskochetkov5565
    @staskochetkov5565 3 года назад +1

    Технобайки. Лучшая рубрика 👍👍👍👍👍❗❗❗❗👍👍❗❗❗

  • @nikolas6649
    @nikolas6649 3 года назад +1

    Технобайки это конечно хорошо, но где рука терминатора? А где законченный проект робота с Интро? Обещали закончить.
    А вообще может устроите конкурс кто лучше сделает данного робота?(награду естественно вам придумать)

  • @RusLSystems
    @RusLSystems 3 года назад +1

    Одного не понимать - у компутера должна была быть изначальная информация о траектории и при получении неверной информации за короткий промежуток времени посчитать ее верной с учетом скорости массы и инерции?
    Сдается этих параметров в принципе не было... как и многих других...

  • @TeuFortMan
    @TeuFortMan 3 года назад

    Вот что бывает, когда за работу берётся программист, а не программист-инженер

  • @G901-k1l
    @G901-k1l 3 года назад

    Так у нас почти так же недавно ракету угробили при запуске с Восточного. Код ориентации исправно работал на Байконуре десятки лет. А запустили с восточного - стал крутить ракету не в ту сторону. Детская ошибка в коде стоила много лямов.

  • @SL4RK
    @SL4RK 3 года назад +1

    произошел шиндовс хас стоппед воркинг!!!

  • @alexorlovecky6662
    @alexorlovecky6662 3 года назад +2

    Очень странно, почему они не использовали MISRA.
    Решили, что авось пронесёт?

  • @kristian9784
    @kristian9784 3 года назад +6

    Крутое видео я тебя смотрю уже 2 года так держать

  • @Andrew_Bezryadin
    @Andrew_Bezryadin 3 года назад +1

    запуск...
    установка тяги двигателей 80...
    высота: 1000 м
    Ошибка совместимости!
    Переполнение переменной!
    Диагностика
    установка положение ракеты: 90*
    Аварийное завершение работы 1 модуля...
    Аварийное завершение работы 2 модуля...

  • @VKS_24
    @VKS_24 3 года назад

    Вот почему мне запуски любых ракет кажется как начало 3 мировой...

  • @shtivenpolo
    @shtivenpolo 3 года назад +1

    Ну так C и С++ не контролируют неявное преобразование типа, оно всё равно будет сведено к явному на этапе компиляции, разве что для отдельных случаев будет выдан варнинг у некоторых компиляторов в некоторых случаях (также из-за перегрузки функций C++ рекомендуется следить за типом операндов операций и аргументов функций вручную, иначе может быть вызвана не та функция с тем же именем). Явное преобразование - обычная операция в C и С++, её корректность не контролируется ни во время компиляции, ни во время исполнения. Переполнение - не совсем корректный термин для операции преобразования плавающего в целое. У плавающего своё переполнение, у целого своё. Конкретно при преобразовании double в uint16, вначале произойдёт преобразование в самое длинное целое (long например), а затем старшие биты будут просто отброшены. Вообще именно так (отброс старших битов) и может завершится самая обычная операция с целым (мультипликативная, аддитивная). И в стандарте многих языков это не является ошибкой! Целочисленное переполнение часто не контролируется вообще. Можно настроить компилятор на генерацию исключения отдельно. (В тоже время плавающее переполнение - всегда ошибка.) Есть ещё способ преобразовать плавающее в целое - изъятие мантиссы с отбросом экспоненты по маске в побитовой операции из союза (union) в составе double и 64-битного целого. Но такой способ не является универсальным, ибо нужно точно знать низкоуровневый формат плавающего, а он в стандарте языка не задан и варьируется у ЭВМ. Здесь вообще невозможно переполнение, по сути - это тот же отброс битов.
    Поэтому для корректного преобразования рекомендуется воспользоваться функциями, часто самописными, чтобы гарантировать обработку ошибок.
    Что же до неконтролируемости целочисленного переполнения, то оно бывает и полезно. А именно - такое поведение в мультипликативной операции есть по сути аж две операции подряд - умножение и остаток от деления на (длину максимального целого + 1). И в 32-битных генераторах псевдослучайных чисел формула R[i]=(R[i-1]*M)%L сокращается до R[i]=R[i-1]*M, где R[] - последовательность псевдослучайных целых, M - множитель последовательности, L - длина цикла последовательности (константы L и M подбираются особо и зависят друг от друга, для L=2^31 существует не так много приемлемых M, одно из которых, 65539, даёт в прошлом весьма распространённый алгоритм RANDU).

  • @rockykid3785
    @rockykid3785 3 года назад +3

    5:11 mHz это миллигерцы, а не мега, как вы могли так накосячить в надписи то

  • @БорисРожкин
    @БорисРожкин 3 года назад

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

  • @Ardbot
    @Ardbot 3 года назад

    Леха, мы не эту ракету ждали! Но всеравно интересно. Есть ещё идеи по вжмванию после большого П?

  • @cb_q
    @cb_q 3 года назад +6

    2:45
    >Но самое интересное, среди обломков нашли две инерциальные системы навигации. В них хранились логи с траекторией, которая еще не успела улететь на землю.
    простите, но я так и не понял эту фразу. что означает "логи с траекторией, которая еще не успела улететь на землю"?
    аналог черного ящика они нашли?

    • @Gromozek69
      @Gromozek69 3 года назад

      Скорее всего просто память с сохранившимися логами.

    • @Gromozek69
      @Gromozek69 3 года назад

      Там если почить источники, посмотреть фото, видео много частей той ракеты хорошо сохранились.

    • @maksim5225
      @maksim5225 3 года назад +1

      Имеется в виду, что по логам ракета ещё не улетела так как система ориентации дала сбой и больше не писала нечего в логи. Как то так я понял.

    • @АндрейДворецкий-э9х
      @АндрейДворецкий-э9х 3 года назад

      Скорее всего там записана траектория до момента взрыва ракеты, а до взрыва, ракета ещё не падала (летела) на землю.

  • @Артём-г7х8е
    @Артём-г7х8е 3 года назад

    Было бы символичнее, если бы не поместившееся число затёрло адрес возврата на стеке

  • @THEGamerChocolate
    @THEGamerChocolate 3 года назад +1

    кэрбал спэйс программм!!!8:00

  • @RedDrake700
    @RedDrake700 3 года назад

    Аххаах видос серьёзный но геймплей где балуются в KSP

  • @1-mark-835
    @1-mark-835 3 года назад +1

    Безусловно лайк!

  • @1382200
    @1382200 3 года назад

    «Техника попала на тот свет»! Новое слово Амперки в теологии ))

  • @Gordon_Workshop
    @Gordon_Workshop 3 года назад +1

    Что за игра на 6:50?

    • @_MrLime_
      @_MrLime_ 3 года назад +1

      Серьёзно?

  • @TheMicstep
    @TheMicstep 3 года назад

    При использовании С++ можно включить что при даунсазинге автомачтиески проверяются границы и выдается эксепшн

  • @АлександрБелокопытов-л4ъ

    7:00 Я на эту игру залип.

    • @oleg__9479
      @oleg__9479 3 года назад

      Кербал Спейс програм название

  • @user-ml2rb9eb9n
    @user-ml2rb9eb9n 3 года назад +2

    Ну,если франция,то Ариан,а не эриан :) у французов все по-человечески.

  • @НиколайАлексенцев-ж6ь

    Это как после CodeVisionAVR (в нём переменная INT подразумевает 16 бит) , перешёл на PIC CCS , я бился головой о стену три дня , думая почему не работает программа ....Оказалось что в пик ссs нужно указывать INT8 или INT16...А если не указал то она инт8 )))))))) Этого нигде не было написано .

    • @dmitryvodolazsky
      @dmitryvodolazsky 3 года назад

      После того, как первый раз столкнулся с бардаком с размерами дефолтных int итд, взял себе привычку всегда явно с размером указывать, а в тех редких случаях, где именно максимум процессорного слова надо выжать - обвешивать if'ами под разные случаи. Чуть больше писанины, но зато насколько целее нервы! :)

  • @NoiroStar
    @NoiroStar 3 года назад

    То чувство когда смотришь это видео в перерыве между написанием тестов)

  • @АлександраКоноплева-ю2у

    Не по колокольчику а по зову сердца)))

  • @Roter-Kasper
    @Roter-Kasper 3 года назад +2

    О Лёха вернулся

  • @КровожаднаяУлитка-ф9б

    Из-за казалосьбы такой мелочи. Познавательно 😊👍

  • @circumworld-no-ticket
    @circumworld-no-ticket 3 года назад +1

    лайк, но видеоряд отвлекает и вообще бессмысленно вставлен 🤔

  • @eeewedsds6177
    @eeewedsds6177 3 года назад

    Вспомнил фразу Шепарда из Call of Duty: modern warfare, я потерял миллионы, всего за несколько минут

  • @kewldanil
    @kewldanil 3 года назад +3

    Где видео про float?

  • @noground-x
    @noground-x 3 года назад +4

    А они автопилоты на машины ставят. )

    • @dmitryvodolazsky
      @dmitryvodolazsky 3 года назад +1

      Человек всё равно глючнее. Уж слишком у него был безалаберный программист, лепил "как получается" и "из того что было".

  • @prostaknaivnyj5976
    @prostaknaivnyj5976 3 года назад

    инфа стухла лет 20 тому назад. расскажи про новые баги-убийцы!

  • @typuct_dark_side
    @typuct_dark_side 3 года назад +1

    7:32 что за симулятор?

    • @_MrLime_
      @_MrLime_ 3 года назад +1

      Kerbal space program.

  • @jconnar
    @jconnar 3 года назад

    Ну упала и упала - кто не летает тот не падает.

  • @Uni-Coder
    @Uni-Coder 3 года назад +1

    Разрабатывайте сначала тесты, а потом код :) Test driven development

  • @vlad_cool04
    @vlad_cool04 3 года назад +3

    4:09 это что, эмулятор сыча с телефоном в качестве гироскопа?

  • @DNKR88
    @DNKR88 3 года назад +5

    Громкое название - "Компьютер - убийца"
    Ну так дело было не в бобине...
    Тут скорее "Инженеры - тупицы".

    • @IreneRadix
      @IreneRadix 3 года назад

      Кликбейт) Но вообще я бы сказала, что мне всё равно очень нравится рубрика, ибо меня мотивирует, что другие прогеры и инженеры тож косячат) Помогает не впадать в депрессняк, если у меня что-то не получается

    • @IreneRadix
      @IreneRadix 3 года назад +1

      Собственно, к счастью, по-другому компьютеры пока убивать не могут

    • @AmperkaRuOfficial
      @AmperkaRuOfficial  3 года назад

      @@IreneRadix ну нееееее ruclips.net/video/d3ENbjUTv0I/видео.html и ruclips.net/video/G-TdIFOHcWY/видео.html

    • @IreneRadix
      @IreneRadix 3 года назад

      @@AmperkaRuOfficial , смотрела. Там тоже ошибки программистов, хотя последствия страшнее
      P.S. Естественно, программировать что-то важное типа компов на самолётах, ракетах, медицинских приборах и.т.п. я не пойду

  • @HIHITO
    @HIHITO 3 года назад +3

    1:33 ksp

  • @sephcrescent3321
    @sephcrescent3321 3 года назад

    "Ракета против Лехи. The phantom pain"

  • @sergey_belyakov
    @sergey_belyakov 3 года назад

    Ещё очень интересный компьютер-убийца - первопричина катастрофы ИЛ-76 на Камчатке в 1996 году. Там штурман по ошибке ввёл 153 широту вместо 53. Насколько я помню детальный отчёт, компьютер не сообщил об ошибочном вводе, а просто проглотил ведущую единицу, не выводя её на дисплей, так как не хватало разрядности. В результате у штурмана не было возможности визуально проконтролировать такой ошибочный ввод. Навигационная система также не проверила широту на правильность, и повела самолёт не туда.

    • @yuriykulyev6272
      @yuriykulyev6272 3 года назад

      ну, если программа позволила ввести широту 153град, то респект кодерам ...

  • @crzkamcha8922
    @crzkamcha8922 3 года назад

    9:20, что за фильм, не могу название вспомнить?

    • @xromies
      @xromies 3 года назад

      Армагеддон

  • @YgrikNovoros
    @YgrikNovoros 3 года назад +1

    Похожа на знаменитую ошибку в ракетных комплексах ПВО "Пэтриот".
    ну и 737МАХ

  • @Vaska_Sashin
    @Vaska_Sashin 3 года назад +1

    Я уже где то слышал похожее, тоже о ракете, но не Ariane-5G, да и страна другая.

    • @a.d7566
      @a.d7566 3 года назад +1

      Протон М ёб..лся летом 13 года, с глонасами на борту.