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

  Рет қаралды 169,059

AmperkaRu

AmperkaRu

Күн бұрын

Пікірлер: 482
@DDEEXX02
@DDEEXX02 3 жыл бұрын
Эту историю читал лет 12 назад, в каком-то компьютерном журнале. Заголовок был, что-то "Самая дорогая программная ошибка". Спасибо, освежил память.
@bashkirtsevich
@bashkirtsevich 3 жыл бұрын
Покрывайте код тестами. Покрывайте код тестов тестами. Покрывайте код тестов тестов тестами... (спустя несколько тысяч итераций) * переполнение стека *
@АндрейВарин-р4г
@АндрейВарин-р4г 3 жыл бұрын
:)
@dred77780
@dred77780 3 жыл бұрын
Жиза)))))
@stanislavk1546
@stanislavk1546 3 жыл бұрын
Стэка мозга
@dimasokolru
@dimasokolru 3 жыл бұрын
Сюда нельзя вставить изображение, но думаю что все видели картинки из серии «unit tests passed, integration failed». И здесь тоже, отдельно взятые тесты не помогли бы совсем, от слова «никак». А так, вообще говоря, если для тестов нужны свои тесты, то все эти тесты написаны неправильно.
@NoiroStar
@NoiroStar 3 жыл бұрын
Кстати я вот буквально недавно думал что чем больше ты масштабируешь и уточняешь тесты, тем больше они начинают походить на копию приложения, которое покрывается тестами. Потому что я уже не знаю что сложнее - эндпоинты на беке который я тестирую, или интерсепторы которые я всё больше усложняю в сайпресе.
@flibustieros
@flibustieros 3 жыл бұрын
Проц с ядром: - системная ошибка, оверхед пула, кернел паник! Помогите! Логгер: - я просто запишу это, ок
@deeznucz8639
@deeznucz8639 3 жыл бұрын
Логгер: чувак с камерой из мемов
@wentysss
@wentysss 3 жыл бұрын
У логгера так то больше и нет задач, кроме как записывания состояния машины
@akuladon1488
@akuladon1488 3 жыл бұрын
Отличный выпуск Выпуски на ракетную тематику усиливают желание увидеть новую ракету в вашем исполнении
@150_Pounds_Of_Toxic_Substance
@150_Pounds_Of_Toxic_Substance 3 жыл бұрын
мне во время просмотра пришло письмо от гикбрейнса!
@Partizanex
@Partizanex 3 жыл бұрын
Неее пусть соберут генератор водорода кислорода работающий на солнечных Панелях.
@KOT_BARSIK-_-
@KOT_BARSIK-_- 3 жыл бұрын
Жду когда ты соберёшь процессор. В оном из роликов ты обещал попробовать. Спасибо за 300 лайков.
@ShanikNJ
@ShanikNJ 3 жыл бұрын
+
@Chertolet1217
@Chertolet1217 3 жыл бұрын
+
@АртёмАртемьев-о6т
@АртёмАртемьев-о6т 3 жыл бұрын
Согласен но у меня видео вышло 15 мин назад а твой комментарий 20 мин назад. Как?
@UbijcaSmerti2005
@UbijcaSmerti2005 3 жыл бұрын
На макетке из транзисторов?
@LNLGv-ig8fb
@LNLGv-ig8fb 3 жыл бұрын
Как он тебе его соберет
@Сергей-ы3д8и
@Сергей-ы3д8и 3 жыл бұрын
Тоже программист и такие ситуации случаются очень часто: когда видишь ошибку и понимаешь, что код на все 100% должен работать правильно, но он почему-то этого не делает.
@_Goodless
@_Goodless 3 жыл бұрын
А почему такая уверенность, что он должен работать? Вы же помните, что у вас 16-bit и есть пределы. Если посмотреть на ситуацию в целом со стороны, то я бы никогда не посчитал полностью универсальным код, который рассчитан для работы при отклонениях не на все 360x180 градусов. Я бы добавил туда комментарий: # проверь штатный угол отклонения ракеты перед переносом кода. Ладно бы ещё величина переменной была бесконечной: например, высота орбиты в метрах, тут уж точно можно только взять некоторый запас, дальше которого ракета физически улететь не сможет, и записать в комментарии в коде, что при переносе его на новую ракету нужно проверять, не увеличить ли битность переменной согласно новым техническим характеристикам.
@aronarinkin8779
@aronarinkin8779 3 жыл бұрын
@@_Goodless комментарии наше всё
@dazbjaxnoname7611
@dazbjaxnoname7611 3 жыл бұрын
@@_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-й версии, он не был нужен.
@RetuZZik
@RetuZZik 3 жыл бұрын
Кстати норм заход для рекламы курсов тестировщиков был бы (:
@akazanova
@akazanova 3 жыл бұрын
Или для KSP 2
@Hbyh66_ug67
@Hbyh66_ug67 3 жыл бұрын
Любишь смотреть рекламу? 🤦🏻‍♂️
@arbuzno
@arbuzno 3 жыл бұрын
@@Hbyh66_ug67 Нет, просто отмечает подходящее для неё место в шуточной форме
@aerospacer994
@aerospacer994 3 жыл бұрын
Ну, это просто супер! Рассказ про чью-то маленькую ошибку, которая обошлась очень дорого, и Антон на первых же кадрах говорит - знакомьтесь, Ариан-5, а показывает - Ариан-6 !!! Браво! )
@YN3_
@YN3_ 3 жыл бұрын
5:20 вместо МегаГерц (MHz) написано МиллиГерц (mHz). Монтажеру привет.
@TheRealNisem
@TheRealNisem 3 жыл бұрын
мощный проц)) надежный как швейцарские часы))
@urgebt
@urgebt 3 жыл бұрын
Ошибку устранили... вместе с тем, кто её допустил)
@jetspaser5935
@jetspaser5935 3 жыл бұрын
Мне кажется, такое только в нашей необъятной практикуют. Там все таки человеческий фактор сработал. Много, очень много людей допустило ошибку...
@alexanderXpetrov
@alexanderXpetrov 3 жыл бұрын
У боинга вроде была история, когда была плавающая проблема в софте, которая отлавливалась только в полете, создавая очень стремную ситуацию для всех кто на борту. Её долго не могли пофиксить. В конце концов организовали демо полет для инженеров, которые бысренько пофиксили её, когда почуствовали на себе ее последствия)
@_Goodless
@_Goodless 3 жыл бұрын
Надеюсь, устранили окончательно, т.е. сделали возможной работу на любых углах отклонения вплоть до 180° (просто потому что здесь физически существует предел этого параметра)? А то окажется, что следующая ракета летит ещё круче и переменная снова не рассчитана на такие значения.
@jag0to
@jag0to 6 ай бұрын
@@jetspaser5935 к сожалению, нет. Компания боинг частенько практикует такое, когда кто-то заявляет о сбоях и о другой информации, которую не должен знать мир (Чтобы не начались суды и разбирательства).
@IgorYegorkin
@IgorYegorkin 3 жыл бұрын
16 бит хватит каждому
@Thor_Odinssen
@Thor_Odinssen 3 жыл бұрын
Ну что, битами померяемся?🤣
@gACZXC6ASDASD
@gACZXC6ASDASD 3 жыл бұрын
Мне и 8 заголову
@СашаИванов-у2ц3с
@СашаИванов-у2ц3с 3 жыл бұрын
а 512 битный процессор в 83 году на ВМФ СССР не хочешь?
@lava_frai
@lava_frai 3 жыл бұрын
@@gACZXC6ASDASD юзаю 4x битный 😎👍
@ledle3949
@ledle3949 3 жыл бұрын
@@СашаИванов-у2ц3с а поподробнее можно?
@Takumy_
@Takumy_ 3 жыл бұрын
1:29 лайк за KSP)
@lonegall
@lonegall 3 жыл бұрын
Как раз собирался это писать. Лайк.
@dalipot2747
@dalipot2747 3 жыл бұрын
Я на кружке делаю всяких роботов на конкурсы. Мне дали задание: перенести программу с одного робота с какой-то штукой на подобие радара на другого. Я перенёс без изменений, ведь на моём она работала нормально. Но я не учёл, что у меня стоит Ардуино Уно, а там- Мини. Естественно там по-другому были воткнуты провода. Я включаю робота с новой программой, начинаю им управлять. Левая и правая гусеница работали нормально. Потом я начинаю вращать"Радар"... Робот начал хрустеть и передачу на радаре разломало к чёрту. Вот ещё один урок: всегда проверяйте пины на платах, пожалуйста.
@ChronosPauL
@ChronosPauL 3 жыл бұрын
А меня научили: перед делением в коде проверь знаменатель на ноль, даже если нуля там не будет никогда в жизни. А вот если не проверишь - то ноль обязательно проскочит.
@rawil6751
@rawil6751 3 жыл бұрын
А это не сильно нагрузит систему?
@ChronosPauL
@ChronosPauL 3 жыл бұрын
@@rawil6751 деление грузит намного сильнее, чем проверка условия
@dmitryvodolazsky
@dmitryvodolazsky 3 жыл бұрын
Угу, а потом окажется, что не ноль, но достаточно малое число в знаменателе -- тоже даёт переполнение. И твоя проверка была ни о чём. Полностью корректная работа с ошибками возможна только при реализации подсистемы обработки исключений (типа try-throw-catch). Более простые варианты всегда имеют грабли или сильно неэффективны, а если расширять функциональность до полного подавления граблей, то в итоге почти та же схема обработки по сути и получится.
@ChronosPauL
@ChronosPauL 3 жыл бұрын
@@dmitryvodolazsky проверять double на ноль - надо быть альтернативно одаренным. А когда среднее или СКО считаешь - вполне рабочая схема. И не надо к мелочам докапываться, я указал принцип: даже там где нуля быть не должно, он может появиться
@dmitriibannikovasx
@dmitriibannikovasx 3 жыл бұрын
ахахах) Даже если знаменатель - константа, отличная от 0?
@maxray7329
@maxray7329 3 жыл бұрын
Очень здорово, что не просто рассказал, но и наглядно показал как ведёт себя эта "особенность" в компиляторе.
@denispleshakov9437
@denispleshakov9437 3 жыл бұрын
"Покрывайте свой код тестами", самое важное в этом видео.
@ZALMAN_AKILOV
@ZALMAN_AKILOV 3 жыл бұрын
Все ведь тестами не покрыть, производительность упадет. Там и так овер дофига параметров нужно вычислять.
@denispleshakov9437
@denispleshakov9437 3 жыл бұрын
@@ZALMAN_AKILOV вообще то здесь речь идет об интеграционном тестировании, которое выполняется перед релизом продукта, а не проверках в рантайме. Они никак не влияют на производительность, потому что существуют отдельно от продукта.
@Uni-Coder
@Uni-Coder 3 жыл бұрын
@@ZALMAN_AKILOV Производительность упадёт... гм... во время тестирования. Какая неожиданность
@ZALMAN_AKILOV
@ZALMAN_AKILOV 3 жыл бұрын
@@Uni-Coder спасибо огромное, учту в будущем, а то пишу и не тестирую совсем, вот я дэбил
@natteft6593
@natteft6593 2 жыл бұрын
не экономьте на быдлокодерах
@ИванЛысый-п8ы
@ИванЛысый-п8ы 3 жыл бұрын
Как у классика поётся: нельзя обосраться, но мы обосрались...
@ДжекПиронович
@ДжекПиронович 3 жыл бұрын
7:40 аааааааа! Кто так строит? Лёха ты же инжинер.
@Rodogor_Hoenhaym
@Rodogor_Hoenhaym 3 жыл бұрын
он так видит.
@ДжекПиронович
@ДжекПиронович 3 жыл бұрын
@@Rodogor_Hoenhaym но это не оправдание. Строить надо по нормальному.
@Rodogor_Hoenhaym
@Rodogor_Hoenhaym 3 жыл бұрын
@@ДжекПиронович нормальный инженёр, нормально построил.
@robert1330
@robert1330 3 жыл бұрын
Да ладно гироскопов побольше и как струна полетит)
@ДжекПиронович
@ДжекПиронович 3 жыл бұрын
@@robert1330 это гиродины.
@lexelfs
@lexelfs 3 жыл бұрын
Так в чем был баг? Это из разряда - пришел баг с работы домой, весь грустный грустный. Жена спрашивает его, что случилось, дорогой? А баг и отвечает - ты прикинь, эти уроды что придумали... Издали какие то документы... Теперь я не баг... Я фича..
@alexgordon4634
@alexgordon4634 3 жыл бұрын
Вся суть ошибки Машины должны быть безопасны для человека. Переполнение буфера для переменной: Машины должны убивать человека!
@alexgordon4634
@alexgordon4634 3 жыл бұрын
Беспилотные такси - игра в рулетку(с одним боевым патроном)
@МишаГго
@МишаГго 3 жыл бұрын
Мне аж захотелось в KSP поиграть
@timoshkaarmata8094
@timoshkaarmata8094 3 жыл бұрын
да кстати
@АлександрБелокопытов-л4ъ
@АлександрБелокопытов-л4ъ 3 жыл бұрын
Мне тоже
@АндрейПоляков-е5н
@АндрейПоляков-е5н 3 жыл бұрын
Ещё один рассказ, где все произошло из-за переполнения переменной. Топ1 баг!
@Евгений-п1л1ъ
@Евгений-п1л1ъ 3 жыл бұрын
А как весело отлавливать такие ошибки. Спасибо производителям потребительского железа за вагон оперативки. Можно без зазрения совести везде использовать double
@brusherru
@brusherru 3 жыл бұрын
@@Евгений-п1л1ъ однажды и дабл может переполниться :-Р
@ОлегВандрашек
@ОлегВандрашек 3 жыл бұрын
@@Евгений-п1л1ъ а потом калькулятор гиг ОЗУ жрёт
@alexanderXpetrov
@alexanderXpetrov 3 жыл бұрын
Только вот в этом примере, поведение при переполнении это скорее особенность поведения языка, а не процессора. Точнее даже компиляторат Попробуй тот же раст, и там будет совсем все по другому
@INshadow08
@INshadow08 3 жыл бұрын
даже в C# для проверки переполнения есть `checked`
@natteft6593
@natteft6593 2 жыл бұрын
@@INshadow08 ещё один недоязык
@jesusdarkjewel9456
@jesusdarkjewel9456 3 жыл бұрын
Интересно Ариан 6 :) тоже сразу запустят с полезным грузом "Ну всё-же работало на 5 версии".
@Vlafder
@Vlafder 3 жыл бұрын
Вот это я понимаю дебагинг кода)
@НиколайБазанов-к6й
@НиколайБазанов-к6й 3 жыл бұрын
Кадры из ксп вставил, это мы одобряем
@Vlad_BY
@Vlad_BY 3 жыл бұрын
Ксп это что ? Подскажи если не сложно. Поиск по фото херню выдает индийскую. Не смотрел, интересно.
@НиколайБазанов-к6й
@НиколайБазанов-к6й 3 жыл бұрын
@@Vlad_BY Игра Kerbal space program
@MountCreekFlow
@MountCreekFlow 3 жыл бұрын
Ура! Компьютер убийца продолжается!
@grandmaster6437
@grandmaster6437 3 жыл бұрын
Классный выпуск, почаще бы такое, очень интересно
@aleksthorne
@aleksthorne 3 жыл бұрын
Подскажите пожалуйста кадры из какого фильма использовались в моменте с 9:13
@РодомизРСФСР
@РодомизРСФСР 3 жыл бұрын
Можем спать спокойно, Арнольд грохнул Скайнет )
@chaoskrl
@chaoskrl 3 жыл бұрын
Поправка: Скайнет выбрал не тот тип переменной и грохнулся сам.
@dalipot2747
@dalipot2747 3 жыл бұрын
@@chaoskrl В этой вселенной Скайнет сделал харакири)
@chaoskrl
@chaoskrl 3 жыл бұрын
@@ssh7437 Этот точно сам развалился. Имел фатальный недостаток и кучу мелких багов.
@chaoskrl
@chaoskrl 3 жыл бұрын
@@ssh7437 Не, мой батя в конце 70-х это предсказывал. Только, поскольку был глубоко советским человеком, смотрел на это под другим углом, что мол "маленькая штучка моё" постепенно одерживала верх над идеей коммунизма.
@chaoskrl
@chaoskrl 3 жыл бұрын
@@ssh7437 да он и цитировал эту фразу "маленькая штучка моё" из какой-то советской классики. В этих "окнах" я так понял, что это лженаука какая-то, но у СССР были и чисто объективные причины, чтобы развалиться... Например, гиперцентрализация, которая сейчас и у ГОРФ есть.
@MrKim-pt2vm
@MrKim-pt2vm 3 жыл бұрын
нужно подобные ошибки в курс собирать и преподавать в университете, с более подробным разбором, а курс назвать, как не стать говнокодером
@HukoJlau_06
@HukoJlau_06 3 жыл бұрын
Спасибо! Теперь есть то что смотреть перед сном
@kirillmux
@kirillmux 3 жыл бұрын
оп, на 5 минуте Амперка говорит 12-33 мегагерц а обозначил в ролике как mHz, то есть милигерцы. Ай-яй-яй, вот из-за таких вот мелочей ракеты и разбиваются. ))))
@AmperkaRuOfficial
@AmperkaRuOfficial 3 жыл бұрын
Блин. Точно. Столько раз смотрел и не видел...
@FenechKus
@FenechKus 3 жыл бұрын
неплохо неплохо)) KSP одобряем)
@ДжекПиронович
@ДжекПиронович 3 жыл бұрын
2:03 дорогой же фейерверк вышел.
@kontruspech
@kontruspech 3 жыл бұрын
5:21 - MHZ..., а не миллиГерц
@oleg__9479
@oleg__9479 3 жыл бұрын
Мегагерц
@oleg__9479
@oleg__9479 3 жыл бұрын
Мхз мегагерц
@PavelByRuss
@PavelByRuss 3 жыл бұрын
Интересный контент. Спасибо за выпуск. Не знал про такую аварию.
@ArduBlock_Project
@ArduBlock_Project 3 жыл бұрын
! Ждём от Амперки - сборка простого процессора на простых транзисторах !
@staskochetkov5565
@staskochetkov5565 3 жыл бұрын
Технобайки. Лучшая рубрика 👍👍👍👍👍❗❗❗❗👍👍❗❗❗
@ВикторРусин-е8э
@ВикторРусин-е8э 3 жыл бұрын
Привет создателям софта для Боинг 737MAX
@Noname-fl4cf
@Noname-fl4cf 3 жыл бұрын
Там нету так таковой ошибки, код работает так как написан без багов, там как бы сказать... Недоработка.
@ВикторРусин-е8э
@ВикторРусин-е8э 3 жыл бұрын
@@Noname-fl4cf От этого только страшнее. 2 самолета упало, погибло 315 человек.
@alexlinde6695
@alexlinde6695 3 жыл бұрын
Там другое - там знак обратной связи поменялся на противоположный, и девайс ушел носом в землю, а должен был наоборот. Все-таки программерам таких вещей ДОЛЖНЫ читать основы ТАР, даже если это индусы.
@Noname-fl4cf
@Noname-fl4cf 3 жыл бұрын
@@alexlinde6695 там просто был неисправен датчик угла атаки, а великие программисты из боинга не учли ситуацию что он может быть неисправен и давать неверные данные. При этом ПО брало данные только с 1го датчика, даже если остальные были исправны. Датчик показывал что нос задрат - ПО пыталось его опустить, хотя это было не так. А пилоты не предприняли неправильные действия по устранению проблемы + это был в обоих случаях взлет и как следствие низкая высота
@DmitryBy.company
@DmitryBy.company 3 жыл бұрын
Выпуск просто огонь, амперкины вы как всегда отличная команда.
@vad3eng769
@vad3eng769 3 жыл бұрын
За KSP респект конечно
@sovrinfo
@sovrinfo 3 жыл бұрын
Спасибо за видео.Коммент в поддержку!
@alyuro79
@alyuro79 3 жыл бұрын
Чтоб "Протон" совершил подобный кульбит, так серьёзно не заморачивались - хватило пару штифтов спилить при установке датчиков угловой скорости ))
@cb_q
@cb_q 3 жыл бұрын
legacy код - он такой. когда его писали были свои ТЗ и ограничения, т.е. условия, в которых он работает. может ввести в заблуждение, что он будет всегда работать во всех условиях, если он долго эксплуатировался и всегда работал корректно (в пределах условий ТЗ). на эти грабли многие наступают.
@Mekc1m
@Mekc1m 2 жыл бұрын
1:55 - физика ksp))) Кто понял тот понял...
@votetonomer
@votetonomer 3 жыл бұрын
Лехина ракета обошлась дешевле…
@akaruiakarui9893
@akaruiakarui9893 3 жыл бұрын
А если не видно разницы..)
@user-ml2rb9eb9n
@user-ml2rb9eb9n 3 жыл бұрын
Ну,если франция,то Ариан,а не эриан :) у французов все по-человечески.
@aronarinkin8779
@aronarinkin8779 3 жыл бұрын
Спасибо за ксп амперка!... Кстати для ксп есть адд-он Kos он добавляет возможность программировать корабли на бэйсике
@alexorlovecky6662
@alexorlovecky6662 3 жыл бұрын
Очень странно, почему они не использовали MISRA. Решили, что авось пронесёт?
@veoramid
@veoramid 3 жыл бұрын
Читал байки про программистов еще во времена FIDOnet в районе 1996-2000 годов. Эта история там была. И еще несколько историй, в которых ошибки программистов привели к различным потерям. Найти бы тот текстик...
@Тень-д7р
@Тень-д7р 3 жыл бұрын
Отличный видос жду еще таких)
@circumworld-no-ticket
@circumworld-no-ticket 3 жыл бұрын
лайк, но видеоряд отвлекает и вообще бессмысленно вставлен 🤔
@nikolas6649
@nikolas6649 3 жыл бұрын
Технобайки это конечно хорошо, но где рука терминатора? А где законченный проект робота с Интро? Обещали закончить. А вообще может устроите конкурс кто лучше сделает данного робота?(награду естественно вам придумать)
@G901-k1l
@G901-k1l 3 жыл бұрын
Так у нас почти так же недавно ракету угробили при запуске с Восточного. Код ориентации исправно работал на Байконуре десятки лет. А запустили с восточного - стал крутить ракету не в ту сторону. Детская ошибка в коде стоила много лямов.
@RusLSystems
@RusLSystems 3 жыл бұрын
Одного не понимать - у компутера должна была быть изначальная информация о траектории и при получении неверной информации за короткий промежуток времени посчитать ее верной с учетом скорости массы и инерции? Сдается этих параметров в принципе не было... как и многих других...
@VKS_24
@VKS_24 2 жыл бұрын
Вот почему мне запуски любых ракет кажется как начало 3 мировой...
@paveltsukanov4488
@paveltsukanov4488 3 жыл бұрын
Статический анализатор кода мог бы найти эту ошибку
@TeuFortMan
@TeuFortMan 3 жыл бұрын
Вот что бывает, когда за работу берётся программист, а не программист-инженер
@shtivenpolo
@shtivenpolo 3 жыл бұрын
Ну так 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).
@SL4RK
@SL4RK 3 жыл бұрын
произошел шиндовс хас стоппед воркинг!!!
@Gordon_Workshop
@Gordon_Workshop 3 жыл бұрын
Что за игра на 6:50?
@_MrLime_
@_MrLime_ 3 жыл бұрын
Серьёзно?
@aleksandrsgranicins3664
@aleksandrsgranicins3664 3 жыл бұрын
Спасибо за видео! Было очень интересно)
@ИльдусГильмутдинов-п9б
@ИльдусГильмутдинов-п9б 3 жыл бұрын
4:10 Я не видел не разу не на одном смартфоне ни одного гироскопа, только датчики притяжения.
@TheMicstep
@TheMicstep 3 жыл бұрын
При использовании С++ можно включить что при даунсазинге автомачтиески проверяются границы и выдается эксепшн
@Артём-г7х8е
@Артём-г7х8е 3 жыл бұрын
Было бы символичнее, если бы не поместившееся число затёрло адрес возврата на стеке
@iforand
@iforand 3 жыл бұрын
11:00 Чтобы компилятор выдавал предупреждения о "стремных" преобразованиях, нужно включить расширенные предупреждения в части преобразований. В gcc за это отвечает опция -Wconversion . В данном случае gcc честно предупреждает, что здесь результат преобразования может оказаться неожиданным. Да и вообще стоит включать -Wextra и -pedantic для пущей строгости. )
@mrkotyuk
@mrkotyuk 3 жыл бұрын
мне вообще интересно зачем он gcc использовал, есть же прям предназначеный для винды msvc...
@rockykid3785
@rockykid3785 3 жыл бұрын
5:11 mHz это миллигерцы, а не мега, как вы могли так накосячить в надписи то
@kristian9784
@kristian9784 3 жыл бұрын
Крутое видео я тебя смотрю уже 2 года так держать
@Andrew_Bezryadin
@Andrew_Bezryadin 3 жыл бұрын
запуск... установка тяги двигателей 80... высота: 1000 м Ошибка совместимости! Переполнение переменной! Диагностика установка положение ракеты: 90* Аварийное завершение работы 1 модуля... Аварийное завершение работы 2 модуля...
@Ardbot
@Ardbot 3 жыл бұрын
Леха, мы не эту ракету ждали! Но всеравно интересно. Есть ещё идеи по вжмванию после большого П?
@genabegemot6658
@genabegemot6658 3 жыл бұрын
Лайк за нарезку из KSP)) порадовал
@БорисРожкин
@БорисРожкин 3 жыл бұрын
Думал сначала, про аппарат для лучевой терапии расскажешь, про ракету не слышал ранее, благодарю.
@AmperkaRuOfficial
@AmperkaRuOfficial 3 жыл бұрын
уже было )
@Uni-Coder
@Uni-Coder 3 жыл бұрын
Разрабатывайте сначала тесты, а потом код :) Test driven development
@УткинБогдан
@УткинБогдан Жыл бұрын
7:40 Бедные кербонафты, остались на орбите Кербина навсегда.
@НиколайАлексенцев-ж6ь
@НиколайАлексенцев-ж6ь 3 жыл бұрын
Это как после CodeVisionAVR (в нём переменная INT подразумевает 16 бит) , перешёл на PIC CCS , я бился головой о стену три дня , думая почему не работает программа ....Оказалось что в пик ссs нужно указывать INT8 или INT16...А если не указал то она инт8 )))))))) Этого нигде не было написано .
@dmitryvodolazsky
@dmitryvodolazsky 3 жыл бұрын
После того, как первый раз столкнулся с бардаком с размерами дефолтных int итд, взял себе привычку всегда явно с размером указывать, а в тех редких случаях, где именно максимум процессорного слова надо выжать - обвешивать if'ами под разные случаи. Чуть больше писанины, но зато насколько целее нервы! :)
@ВильямСкайт
@ВильямСкайт 3 жыл бұрын
Как-то сразу подумал, что ошибка из-за отсутствия тестов. Был только вопрос ошибка в железа или в совте?
@typuct_dark_side
@typuct_dark_side 3 жыл бұрын
7:32 что за симулятор?
@_MrLime_
@_MrLime_ 3 жыл бұрын
Kerbal space program.
@ololololo-l5z
@ololololo-l5z 3 жыл бұрын
я когда переписываю свою программу часто использую куски кода старой, как итог надо переписывать еще раз
@Anti-dots
@Anti-dots 3 жыл бұрын
Симуляцию делали в Кербал?)
@prostaknaivnyj5976
@prostaknaivnyj5976 3 жыл бұрын
инфа стухла лет 20 тому назад. расскажи про новые баги-убийцы!
@sergey_belyakov
@sergey_belyakov 3 жыл бұрын
Ещё очень интересный компьютер-убийца - первопричина катастрофы ИЛ-76 на Камчатке в 1996 году. Там штурман по ошибке ввёл 153 широту вместо 53. Насколько я помню детальный отчёт, компьютер не сообщил об ошибочном вводе, а просто проглотил ведущую единицу, не выводя её на дисплей, так как не хватало разрядности. В результате у штурмана не было возможности визуально проконтролировать такой ошибочный ввод. Навигационная система также не проверила широту на правильность, и повела самолёт не туда.
@yuriykulyev6272
@yuriykulyev6272 3 жыл бұрын
ну, если программа позволила ввести широту 153град, то респект кодерам ...
@crzkamcha8922
@crzkamcha8922 3 жыл бұрын
9:20, что за фильм, не могу название вспомнить?
@xromies
@xromies 3 жыл бұрын
Армагеддон
@КровожаднаяУлитка-ф9б
@КровожаднаяУлитка-ф9б 3 жыл бұрын
Из-за казалосьбы такой мелочи. Познавательно 😊👍
@THEGamerChocolate
@THEGamerChocolate 3 жыл бұрын
кэрбал спэйс программм!!!8:00
@kewldanil
@kewldanil 3 жыл бұрын
Где видео про float?
@vlad_cool04
@vlad_cool04 3 жыл бұрын
4:09 это что, эмулятор сыча с телефоном в качестве гироскопа?
@cb_q
@cb_q 3 жыл бұрын
2:45 >Но самое интересное, среди обломков нашли две инерциальные системы навигации. В них хранились логи с траекторией, которая еще не успела улететь на землю. простите, но я так и не понял эту фразу. что означает "логи с траекторией, которая еще не успела улететь на землю"? аналог черного ящика они нашли?
@Gromozek69
@Gromozek69 3 жыл бұрын
Скорее всего просто память с сохранившимися логами.
@Gromozek69
@Gromozek69 3 жыл бұрын
Там если почить источники, посмотреть фото, видео много частей той ракеты хорошо сохранились.
@maksim5225
@maksim5225 3 жыл бұрын
Имеется в виду, что по логам ракета ещё не улетела так как система ориентации дала сбой и больше не писала нечего в логи. Как то так я понял.
@АндрейДворецкий-э9х
@АндрейДворецкий-э9х 3 жыл бұрын
Скорее всего там записана траектория до момента взрыва ракеты, а до взрыва, ракета ещё не падала (летела) на землю.
@KirDobar
@KirDobar 3 жыл бұрын
Простите, а сколько там была тактовая частота у MC68020? От 12 до 33 МЕГАгерц (MHz) или МИЛИгерц (mHz)? Казалось бы, всего-то другой регистр - но разница 9 порядков
@user-mazuta
@user-mazuta 3 жыл бұрын
мегагерц
@KirDobar
@KirDobar 3 жыл бұрын
@@user-mazuta, но на 5:09 на экране отображены именно милигерцы (mHz)
@DNKR88
@DNKR88 3 жыл бұрын
Громкое название - "Компьютер - убийца" Ну так дело было не в бобине... Тут скорее "Инженеры - тупицы".
@IreneRadix
@IreneRadix 3 жыл бұрын
Кликбейт) Но вообще я бы сказала, что мне всё равно очень нравится рубрика, ибо меня мотивирует, что другие прогеры и инженеры тож косячат) Помогает не впадать в депрессняк, если у меня что-то не получается
@IreneRadix
@IreneRadix 3 жыл бұрын
Собственно, к счастью, по-другому компьютеры пока убивать не могут
@AmperkaRuOfficial
@AmperkaRuOfficial 3 жыл бұрын
@@IreneRadix ну нееееее kzbin.info/www/bejne/mmSof5WgirmpZqs и kzbin.info/www/bejne/fV63lXx8hK2Wjbs
@IreneRadix
@IreneRadix 3 жыл бұрын
@@AmperkaRuOfficial , смотрела. Там тоже ошибки программистов, хотя последствия страшнее P.S. Естественно, программировать что-то важное типа компов на самолётах, ракетах, медицинских приборах и.т.п. я не пойду
@1-mark-835
@1-mark-835 3 жыл бұрын
Безусловно лайк!
@mtveys2800
@mtveys2800 3 жыл бұрын
Леша, ты на 3d today fest поедешь?
@GALAXY-fn8tr
@GALAXY-fn8tr 3 жыл бұрын
А зачем Kerbal space program на задний план лепить? Кто не знает, загуглите, это может перевернуть вашу жизнь)
@HIHITO
@HIHITO 3 жыл бұрын
1:33 ksp
@eeewedsds6177
@eeewedsds6177 3 жыл бұрын
Вспомнил фразу Шепарда из Call of Duty: modern warfare, я потерял миллионы, всего за несколько минут
@Vaska_Sashin
@Vaska_Sashin 3 жыл бұрын
Я уже где то слышал похожее, тоже о ракете, но не Ariane-5G, да и страна другая.
@a.d7566
@a.d7566 3 жыл бұрын
Протон М ёб..лся летом 13 года, с глонасами на борту.
@RedDrake700
@RedDrake700 3 жыл бұрын
Аххаах видос серьёзный но геймплей где балуются в KSP
@АлександраКоноплева-ю2у
@АлександраКоноплева-ю2у 3 жыл бұрын
Не по колокольчику а по зову сердца)))
@СерожаТоже-н4д
@СерожаТоже-н4д 3 жыл бұрын
Однако это не значит, что старый код использовать нельзя. Можно и нужно, иначе придется каждый раз изобретать велосипед, и прогресс серьезно замедлится.
@NoiroStar
@NoiroStar 3 жыл бұрын
То чувство когда смотришь это видео в перерыве между написанием тестов)
“Don’t stop the chances.”
00:44
ISSEI / いっせい
Рет қаралды 62 МЛН