Ошибки в программировании, которые стоили жизней, времени и денег / длиннопост :: Не мое :: ошибки :: погроммисты :: it

it ошибки погроммисты Не мое длиннопост 

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


1. Самый защищенный на свое время Windows NT.

2. Элаи Херцберг попала в историю как первый человек, который погиб под колесами беспилотного автомобиля. Весной 2018 года в темное время суток машина Uber засекла преграду. В начале она подумала, что это мусор, потом — что животное, и только за пару метров поняла, что это человек.

К сожалению, машина не успела затормозить, что привело к смерти человека. Тестирование проходило на модифицированной Volvo XC90, у которой была отключена система экстренного торможения, чтобы не мешать ПО Uber управлять машиной. Не может быть два короля в одном королевстве. Задача тормозить в экстренных случаях была возложена на плечи водителя, который страховал автопилот. Он же в это время смотрел Netflix.


3. 25 февраля 1991 года установка ПВО Patriot не смогла перехватить ракету, пущенную со стороны сил Саддама Хусейна. Ракета попала в барак солдат США, что привело к 28 смертям. Расследование показало, что 24–битные процессоры перехватчика при переводе времени совершают ошибку в 0.013 секунды каждый час. Patriot не перезагружали более 100 часов, что привело к ошибкам вычисления положения ракеты на 600 метров. Вот уж где перезагрузка спасла бы жизни.

4. В 1992 году ошибки системы распределения маршрутов в Лондонской скорой помощи привели к смерти 30–45 человек (разброс большой, потому что не ясно, смогла бы скорая спасти того или иного человека). Все произошло, когда в Лондоне решили заменить людей операторов на компьютерную систему.


В результате система была введена в эксплуатацию без нагрузочного тестирования и с 81! известным багом. Добавьте к этому еще и то, что интегратор решил сэкономить и купил дешевое оборудование, которое сломалось через пару часов после активного пользования системой. Хаос был настолько безумным, что бывали случаи, когда человек, не дождавшись скорой, умирал, его увозили в морг, и только тогда приезжала скорая.

5. 1998 год, один из спутников Nasa, отправленный на Марс, достиг орбиты красной планеты и взорвался. Была ошибка в двух модулях ПО спутника: один ждал данные в метрической системе, а другой отдавал в имперской :) Не додебажили на 327 лямов.

6. Кибервойна, или взрыв, который было видно из космоса.

В 1982 ЦРУ внедрило шпиона в канадскую фирму по разработке софта для газопроводных систем, потому как знало, что этот софт будет использован СССР. Программист–шпион написал методы, из–за которых в 1982 году газопроводная труба взорвалась так сильно, что взрыв можно было наблюдать из космоса. К счастью, никто кроме оленей не пострадал.

7. Ракета Ариана 5, разработка которой стоила около 8! миллиардов долларов, должна была вывести на орбиту несколько спутников и другое оборудование. Полет ракеты завершился через 4 секунды после взлета. Она упала. Один из модулей системы попытался сконвертировать 64–битное число в 16–битное. Оно оказалось больше, чем влезало в память, и модуль завалился. Но ведь есть дублирующий модуль, которому было передано управление! На нем была та же версия ПО, которая попытался сделать то же самое.

8. 1982 год, миноносец морских сил Великобритании был поражен ракетой, выпущенной из аргентинского самолета. Противоракетная система не сработала, погибло 28 человек. Во время постройки миноносца произошел взрыв и погибло два строителя. Поврежденная часть корабля была заменена частью с идентичного аргентинского корабля. Когда система обнаружила ракету, она провела проверку на свой–чужой. А так как замененная часть корабля была аргентинская, ракета была определена как своя. Кэш — это не шутки :) Противоракетная оборона не сработала, потому как ожидала, что ракета пролетит. Но нет.

9. Новейший в свое время самолет F–18 «превращался в тыкву» для системы, когда пересекал зону смены часового пояса с разницей в день (к примеру, полет с Гаваев в Японию). Система не рассчитывала, что может попасть в прошлое, потому 127–миллионный самолет мог упасть в любой момент. Благо, помогал reset.

10. Фобос–1, спутник СССР, был направлен на изучение Марса. В 1988 году неправильная команда, запущенная с Земли, активировала тестирующий код, который никогда не должен был бы выполниться. Это привело к тому, что спутник потерял возможность ориентироваться в космосе. У него села батарея, и он был навсегда утерян. Смешно то, что тестирующий код оказался там из–за спешки, но программисты заверили, что он никогда не выполнится. Выполнился.

11. День, когда AT&T остановился. 1990 год, новый патч для свичей AT&T. Естественно, компания не может апдейтить сразу все свичи, иначе вся сеть упадет. Потому по новой версии софта, один из свичей в Нью–Йорке начал процедуру апдейта и отправил всем ближним сообщение об этом. После апдейта загрузился и сообщил, что на месте. Так уж получилось, что, получив второе сообщение от свича из Нью–Йорка, другие свичи начинали процедуру self–testа, о чем сообщали ближайшим свичам, и отключались. При включении делали то же самое. Вся сеть AT&T каскадом завалилась на 8 часов, отключая своих пользователей от телефонов, и не имея возможности обработать запросы.

12. 5 декабря 2010 года. Российский ракетоноситель Протон–М пошел на дно океана с тремя спутниками Глонасс–М. Причина — неправильная формула, которая превысила массу одного из заправленных баков на более чем полторы тонны. Как оказалось, формула была исправлена и даже была заведена в систему как изменения, запланированные для реализации. Но когда подошли сроки — многие задания закрывали как неважные. Дозакрывались.

13. В 2011 году более 400 заключенных были освобождены раньше срока из тюрем Калифорнии вследствие ошибки в ПО. Штат пытался освободить место в тюрьмах, где его, собственно, уже не хватало. Для выбора самых неопасных преступников был запущен скрипт, который в одной из внутренних систем брал состояние дел заключенного, и по этим делам выставлял «рейтинг опасности». Так как многие из заключенных были в различных бандах или наркокартелях, информации про них было немного, от чего скрипт решал, что заключенный не опасен. Потому 450 опасных преступников были выпущены на свободу раньше срока.

14. Lockheed Martin F–35 Lightning II. Истребитель бомбардировщик 5–го поколения, разрекламированный 26 октября 2001 года. Машина смерти в воздухе, которая должна была быть выпущена в 2008 году и стоить всего–ничего от 40 до 50 миллионов долларов.


Шел 2018 год. Самолет F–35 был использован в бою всего лишь дважды. Система управления, запланированная самолетом, настолько сложна, что пока не очень позволяет ему стрелять, получать координаты и вообще делать хоть что–то. На данный момент осталось починить всего лишь 263 высоко приоритетных бага, и тогда уже можно приступать к лабораторным тестам. Кстати, на разработку самолета потратили уже 133 миллиарда долларов.


15. Когда Steam выпустили на Linux и вы переносили папку с играми из дефолтного места, вы сильно рисковали потерять все данные из–за одного из скриптов в стиме, выполнявших команду rm –rf "$STEAMROOT/"*. Если вы переносили папку, то STEAMROOT оказывался равен пустой строчке, которая превращала все в команду rm –rf "/"*. Жертва зарепортила баг 14 января 2015 года :)


16. 1995 год, аэропорт Денвера представляет проект самой сложной в мире системы автоматической доставки багажа. Цена разработки системы — 200 млн долларов, время разработки — 2 года, рекламы — бесценна. Когда систему открыли, она внезапно начала вытворять с багажом такие непотребности — выкидывала багаж, выстреливала им на ленту доставки и просто зажевывала, — что ее назвали «baggage system from hell». Телевидение и репортеры яростно смаковали картинки разодранных чемоданов, раскиданных вещей и поломанных планов на отпуск.

Доработка системы заняла 16 месяцев, что стоило аэропорту Денвера более чем 1.1 млн долларов в год. Аэропорт открылся таки в 1995 году, но багаж доставлялся старым добрым методом рабочих, мата и тележки. Часть системы все же пользовалась, но была очень дорога в эксплуатации. Ежики кололись, плакали, но продолжали заниматься любовью. По итогу, потратив 600 миллионов вместо запланированных 200, система была заброшена и отключена аж в 2005 году.


17. И немного о будущем! Если вы думаете, что мы пережили баг 2000 года и все дальше будет хорошо — нет :) Нас еще ждет 2038 год. Так уж случилось, что время в Unix–системах отмеряется в секундах, прошедших от 1 января 1970 года.

А именно 19 января 2038 года пройдет ровно 2 147 483 647 секунд от стартовой даты, что не влезет в обычное 32–битное число. Казалось бы, все можно починить, но вы даже не представляете, сколько в мире всего работает на легаси системах. Собственно, меньше чем через 20 лет эта проблема затронет ну очень большое количество систем, устройств и даже структур данных, которыми мы пользуемся сейчас.


Подробнее

it,ошибки,погроммисты,Не мое,длиннопост
Еще на тему
Развернуть

Отличный комментарий!

Блядь, унеси эту кликбейтную хуетень туда откуда взял. Немалое кол-во шибок стоят жзни, времени и денег.
А Элаи Херцберга из второго пункта убило несоблюдение ПДД. Этот умник переходил в неположенном месте. То, что его сбил робот на колёсах - это ошибка не в программировании, а в проектировании этого самого робота, т.к. мало датчиков и всё такое.
Krakozavr Krakozavr 17.03.201907:33 ссылка
+11.7
> переходил в неположенном месте

Значит его правильно определили, как животное.
Блядь, унеси эту кликбейтную хуетень туда откуда взял. Немалое кол-во шибок стоят жзни, времени и денег.
А Элаи Херцберга из второго пункта убило несоблюдение ПДД. Этот умник переходил в неположенном месте. То, что его сбил робот на колёсах - это ошибка не в программировании, а в проектировании этого самого робота, т.к. мало датчиков и всё такое.
Krakozavr Krakozavr 17.03.201907:33 ответить ссылка 11.7
> переходил в неположенном месте

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


Эту дуру сбил бы любой водитель в аналогичной ситуации. Она умудрилась в двух метрах от фонарей найти самое неосвещенное место и переходить там дорогу.
Видеорегистратор не совсем верно передаёт уровень освещённости в этом месте
А теперь, как это выглядит в реальности, а не в обработанном видео
Робот видел пешехода, он опознал пешехода верно, он принял верное решение, но у него не было разрешения экстренно тормозить, это ему было запрещено.
Где ты тут видишь проблемы в проектировании робота, мало датчиков и всё такое? Если робот сделал всё правельно, и только запрет ему пользоваться тормозом привёл к смерти?
Меня в этой истории больше зацепила ошибка в программе кожаного ублюдка, который смотрел Netflix, когда должен был страховать автопилот. И кто его только программировал
Mumrik Mumrik 17.03.201909:46 ответить ссылка 9.7
Поэтому, ИМХО, в автомобилях либо Level 5 autonomy, либо ничто. Потому что если машина берет на себя ЧАСТЬ функций и чаще всего благополучно справляется с ними, это крайне сильно расслабляет внимание, и в итоге в тот редкий момент, когда человек должен действовать самостоятельно, он не готов. Тесла, например, пытается вносить какие-то ухищрения для этого, но кто знает, насколько это эффективно.
Современный самолёт может весь полёт, от взлёта до посадки пройти на автопилоте, кожаные ублюдки там только на случай нештатной ситуации, и когда эта ситуация настаёт, автопилот отключается и выясняется что пилоты не умеют управлять самолётом в сложной ситуации
1. Несмотря на то, что авария самолета потенциально опаснее аварии автомобиля, его поведение проще и его автопилот проще. Автомобиль находится в условиях более непредсказуемого окружения, больше неопределенности, больше данных.
2. И это пилоты, люди, проходящие специальную длительную подготовку. А сесть за баранку может почти любой идиот.
Шестое вроде как спорный вопрос, по части "а был ли мальчик"? Там закрученней, ЦРУ узнало что СССР собирается спиздить софт, и внедрило в нее логическую бомбу, чтобы бомбануло, и позволило спиздить. И бомбануло где то в ебенях, что никто про это и не знал. ЦРУ хвалится что так и было, СССР отрицает вообще факт взрыва. Но мне кажется что это действительно вранье, уж больно на какой то фантастический боевик смахивает.
inglip inglip 17.03.201908:33 ответить ссылка 4.1
В СССР на то время просто не существовало систем телемеханики под управлением компютеров, телемеханика в СССР работала в основном на пневматике.
15 пиздец самое страшное.
Dessann Dessann 17.03.201908:40 ответить ссылка 2.8
Только для дебилов, запускающих все что не попадя от root'а.
В обычной ситуации самое страшное что будет - ошибка Permission denied
Home могло потереть, если не выкулючил вовремя. Вообще, хуй с тем, что лежит в /etc, /bin, /usr и прочих системных, систему можно снова накатить. А вот проебать свои данные - куда хуже.
Люди делятся на 2 типа: одни делатют бэкапы, другие - нет.
Тем не менее, ситуация неприятная. Потому что если говорить о бэкапах всего и вся, то я вижу только один способ - время от времени реплицировать на внешний носитель, поэтому последние данные могут быть потеряны. Если говорить о непрерывной синхронизации с облаком - никаких облаков не напасешься. Я синхронизирую только самое ценное, что влезет. Терабайт стартрека бэкапить как-то дорого.
На тех, кто делают, и тех, кто теперь делают. А ещё на тех, кто проверяет то, что сделали.
И на тех кто делает бэкапы с бэкапов и проверяет их=)
>1998 год, ... один ждал данные в метрической системе, а другой отдавал в имперской
Вроде же всё научное сообщество уже давно использует только метрическую систему
kosoi kosoi 17.03.201908:46 ответить ссылка 1.0
После этого в наса стали использовать только метрическую.
98й год был 20лет назад, если что.
• (öMöJfeCö
kosoi kosoi 17.03.201909:35 ответить ссылка 4.2
Причём это был не программный баг, а косяк человеков, одна из команд не уточнила в какой системе ей передали данные по орбитальному манёвру.
Мне кажется что давно пора пиздить палками тех кто использует имперскую систему при разработке по.
>давно пора пиздить палками тех кто использует имперскую систему

Так лучше.
Ivrain Ivrain 17.03.201913:35 ответить ссылка 4.2
Ну НАСА больше не использует.
7. Ракета Ариана 5, разработка которой стоила около 8! миллиардов долларов... система управления была основана на предыдущих образцах, в них подобные манёвры были невозможны и ответственно система управления не имела необходимости работать с большими значениями.
""часть корабля была заменена частью с идентичного аргентинского корабля...Когда система обнаружила ракету, она провела проверку на свой–чужой. А так как замененная часть корабля была аргентинская, ракета была определена как своя."" что курил пейсатель? ""участок корпуса, позже заменённый на идентичный с другого строящегося корабля, «Эркулес», предназначавшегося для аргентинского флота"". С каких пор участок корпуса опознаёт ракету? Капитан пи..л по сотовому с женой а радар давал помеху, вот капитан его и отключил.
Ага, Шеффилд построили в 71 году, Экзосет разработали в 74, Фолклендская война была в 82.
Все это время данные свой-чужой в кэше были, видимо на броне выгравировали :))))

И тупые аргентинцы секретные данные англичанам передали.
Dems Dems 17.03.201910:21 ответить ссылка 3.6
В ракете Экзосет французы оставили закладку.
dstwo dstwo 17.03.201916:26 ответить ссылка -0.1
Реально ересь в 8 пункте. Вот такую историю рассказывал препод по мат. логике. Британия воевала с Аргентиной,
Направила свой супер корабль в зону боевых действий. Особенность системы свой чужой его такова, что она не отслеживает своих для экономии вычислительной мощности. Аргентина закупила ракеты у Франции, страны НАТО. Корабельная система видит летит натовская ракета, думает что это своя и забивает болт. Бабах. Куча трупов. The end.
"закупила ракеты у Франции"
Вот не надо петросянить, ракета реально неплохая.
dstwo dstwo 17.03.201916:27 ответить ссылка 0.3
Система свой-чужой самая секретная часть систем ПВО, никто и никогда их не продаёт(экипаж сбитого в Сирии ИЛ-20 подтверждает). Аргентинцы целили в авианосцы «Гермес» и «Инвинсибл», "Шеффилд" стоял в дозоре будучи, в том числе, и ложной целью. Супер Этандары шли в 20-30м от поверхности воды, подпрыгнули до 150, включили радары, обнаружили цель, пустили ракеты, легли на обратный курс, на всё-провсё пара минут. Подлётное время около 5ти минут, капитан общался по спутниковой связи и тоключил часть оборудования, не уделил должного внимания сообщениям с соседних судов, ракета удачно попала в мёртвую зону орудийной установки. Свою задачу "Шеффилд" выполнил, принял удар на себя.
Ну на нац гео говорят, что все дело в неправильной расстановке судов, когда одно другому перекрыло обзор
41:30
Это видео не о ракетной атаке. Это другой эпизод той войнушки.
dstwo dstwo 17.03.201917:15 ответить ссылка 0.0
Тем, кто говорит, что может программировать без ошибок, я обычно предлагаю написать программу для решения квадратного уравнения (алгебра, шестой класс) с условием, чтобы программа работала всегда и выдавала адекватный результат.

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

О том, что надо обрабатывать вырожденный случай — линейное уравнение, — каждый двадцатый.

О потере точности не вспоминает практически никто. После моих намёков код переписывается и распухает раза в три.

О потере точности в комплексных числах никто сам так и не вспомнил.

Сопроцессор в архитектуре х86 при денормализованном результате может генерировать исключение (ошибку). Народ матерится и начинает устанавливать флаги сопроцессора. После намёка, что такой финт может повлиять на выполнение кода во вложенных вызовах, в соседних потоках и колбэках, матерится и переписывает ещё раз. Потом вопрос: а что будет, если кто-то поменял флаги сопроцессора извне? Потом я задаю вопрос про SSE, ARM, PowerPC, режимы округления 80x87. Прошу оценить погрешность вычислений. Что делать, если погрешность вычислений такова, что влияет на знак дискриминанта? Намекаю, что при большой погрешности надо сменить метод решения… К этому моменту не совсем тупой народ начинает понимать, что сильно попал.

Короче, нормального решения квадратного уравнения я так и не видел. А ведь это чисто математическая задача. Абсолютно чёткое задание с абсолютно полной информацией. Без ошибок в постановке задачи. Без кривого железа. Без перепутанных проводов датчиков. Без неадекватного и паникующего в аварийной обстановке персонала. Без попыток применить программный комплекс для других целей.

Если человек говорит, что пишет программы без ошибок, увольняйте его немедленно. Полное совершенство и всеведение доступно только Аллаху, но он программ не пишет. Для прочих смертных — это верный признак, что человек умеет сваливать ответственность на других, и за ним придётся все переписывать. Чем круче джип, тем дальше бежать за трактором.

https://ithappens.me/story/10776
Wave Wave 17.03.201918:59 ответить ссылка 1.3
Therac-25 («Терак-25») — аппарат лучевой терапии, запущенный в серию в 1982 году. С июня 1985 года по январь 1987 года этот аппарат стал причиной как минимум шести передозировок радиации, некоторые пациенты получили дозы в десятки тысяч рад. Как минимум двое умерли непосредственно от передозировок. Данные происшествия имели наихудшие последствия за всю 35-летнюю историю лучевой терапии. Основная причина- распиздяйство изготовителей и персонала. Изготовитель использовал кривое самописное ПО, которое не проверяло параметры перед запуском, одна переменная использовалась для разный действий, не было понятных сообщений об ошибках, персоналу было в лом вводить данные их просто переносили из предыдущих заходов.
Плюс в нем не было аппаратных ограничителей, все было возложено на софт. А софт глючил.
Оператор давал дозу излучения, на дисплее светилась нулевая доза, а по факту летела максимальная. Оператор думал "че за фигня?" и запускал процесс по новой, повторно облучая пациента наглухо.
Я бы таким аппаратом мерзких старух-пенсионерок лечил. Не бабулек-пенсионерок, а именно старух, которые скандалистки, которым всегда зимой жарко, а летом холодно, которым все поголовно должны, причем с процентами, которые в магазине создают очереди ради ошибки в ценнике на полкопейки, короче, я бы им лечил таких старух.
dstwo dstwo 17.03.201917:19 ответить ссылка -0.1
Забыли тему, где боевой самолет при пересечении экватора переворачивался кверху брюхом и продолжал полет (тоже шото там напутали с ориентацией). Наверное потому, что там никто не погиб.
Ну вроде это и был тот самолёт, который "не умел в прошлое".
Видимо, киберпунк будет куда более прозаичным с таким тупняком.
>Элейн Херцберг
>Баба
>Человек
А че весь список не запостил? Там много интересного
Вот оригинал https://dou.ua/lenta/columns/dangerous-mistakes-in-prorgamming/
с багажом еще эпик фэйл в Хитроу был
villy villy 17.03.201913:46 ответить ссылка 0.4
- У меня самолет завис!

- А вы пробовали выключить и снова включить?

- Спасибо, помогло
>>человек, не дождавшись скорой, умирал, его увозили в морг, и только тогда приезжала скорая
Ладно винда, но это ж какой пиздец. А есть продолжение истории? Чем это закончилось для "изобретателей"?
>>пересекал зону смены часового пояса с разницей в день (к примеру, полет с Гаваев в Японию). Система не рассчитывала, что может попасть в прошлое
Так изобрели автоматическую синхронизацию?
zaqik zaqik 17.03.201914:53 ответить ссылка 0.1
Машину времени
в системах время обозначается как-то через жопу. то одним байтом, то в милисекундах начиная от какой-то даты, то ещё как-то. но почему только оно? :с можно ведь было и размер файлов высчитывать как корень из интеграла средней длины суммы диаметров члена утконоса в високосный год. и количество свободной памяти. и раскладку клавиатуры. почему всё это прописано однозначно? (хотя на клавиатуре дебилы-программисты сейчас очень полюбили клавиши местами менять) почему только над временем так поиздевались?
krako krako 17.03.201915:14 ответить ссылка -1.0
при чем тут программисты?
еще до них понапридумывали разных календарей, часовых поясов, переводы стрелок, разные страны это всё периодически туда-сюда меняют и тд
пойди это всё разрули теперь
villy villy 17.03.201917:02 ответить ссылка -1.2
при том что такое только в ос. в жизни циферками дату записывают, а не разницу между сегодня и ещё какой-то датой. и цифр можно сколько угодно записать. то есть могу написать год 2000 а могу и 20000. зачем было городить огород?
krako krako 17.03.201917:10 ответить ссылка -0.4
такие даты не сравниваются между собой. плюс они могут скакать, причём даже назад, и одни и та же дата и время будут в 2 разных момента времени. а если учитывать разные страны и когда в истории как им приходило в голову считать время - еще большая жопа
villy villy 17.03.201917:20 ответить ссылка -1.2
если какой-то софт не может сравнить две даты - это проблема софта, а не даты. пусть софт конвертирует их в такие величины, чтобы сравнить для себя. если в какой-то стране сейчас не 2019 год - пусть делают себе патч который будет конвертить реальную дату в их вирутальную и обратно для всех нормальных людей.
krako krako 17.03.201917:28 ответить ссылка -0.4
ну так и делают. "нормальная дата" - это и есть монотонно возрастающее число секунд с какого-то определенного момента времени, с такой циферкой можно легко и быстро работать
villy villy 17.03.201917:33 ответить ссылка 0.0
Проблемы временных зон

* Большинство мест на земле имеют часовое смещение
* Некоторые места имеют получасовое или пятнадцати-минутное временное смещение
* В некоторых местах временная зона меняется в течении года


Проблемы перевода времени

* Множество стран переводит время дабы увеличить продолжительность светлой части суток
* Это делают не во всех странах
* Перевод часов происходит в разное время
* Существует большое количество исключений


Другие проблемы временных зон и «перевода стрелок»

* В Австралии зоны строго вертикальные
* В Бразилии дата, когда переводят срелки, меняется каждый год
* На остров Lord Howe (Австралия) переводят стрелки только на почаса
* Непал переводит стрелки на 15 минут


Проблемы в наименовании временных зон

* Одно именование может означать разные временные зоны:
Например:PST — Pacific Standart Time и Pakistan Standart Time
EST — Easten Standart Time (США), Easten Standart Time (Австралия) и Easten Brazil Standart Time
* Одна зона может иметь несколько наименований

Более того, в разных операционных системах имена зон могут различаться.

Проблемы в представлении даты и времени

* Двусмысленность
06/08/04
6 Августа 2004 года
8 Июня 2004 года
4 Августа 2006
* Нечитаемость
20040425010541
25 Апреля 2004 года 01:05:41
* Другие «магические» форматы
third saturday
2004-03-10 16:33:17.11403+1
2001-11-29T13:20:01.123-05:00
23:41:00.0Z
04:05:07.789 +0930
1999.238


И это только часть проблем, с которыми можно столкнуться и которые нужно учитывать, когда работаешь с датой и временем. Причём, в каждой среде (операционной системе, языке программирования) — свои особенности и нюансы, а стыковаться приходится со внешним миром, в котором каждый как хочет, так и дрочит. А попытки заставить всех соблюдать единый стандарт больше похожи на известный комикс про четырнадцать конкурирующих стандартов.
Wave Wave 20.03.201915:56 ответить ссылка 0.0
17. В 32х битное число можно записать 4.3 млрд чисел (в 2 раза больше 2 147 483 647).
SiavA SiavA 17.03.201915:21 ответить ссылка -0.5
В беззнаковое - да. От 0 до ~4 млрд.
В знаковое - плюс-минус ~2 млрд.
Проблема в том, что во многих устоявшихся форматах файлов зафиксировано время в виде знакового 32-битного целого. Например, в zip.
Верно. Я не утверждаю, что ничего не сломается в 2038, лишь внес уточнение.
Ну и раз уж мы начали рыть, то нет разницы как записано число, как знаковое или беззнаковое, важно то, как его интерпретирует считывающая программа. И вот если последняя будет использовать знаковый int, тогда все и поломается.
SiavA SiavA 17.03.201915:53 ответить ссылка 0.3
Если бы вопрос был только в 32 битах, то проблема появилась бы не в 2038 году, а на 68 лет позже.
Намм в армии офицеры рассказывали про один из про один из похожих факапов с ракетой - из-за ошибки программистов не отделилась отработавшая ступень и ракета с тремя коммерческими спутниками (вроде индийскими) плюхнулась в море.

Хорошо хоть застраховано все было.
Skyaspir Skyaspir 17.03.201922:07 ответить ссылка 0.0
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
i	I' '•!
	I
	I /1
J	
	
F	1 7 1 ■м 1 * КАНЦТОВАРЫ
(п‘]Г’ййа
Кокая большааая стирательмая резинка! Это что бы стирать БОЛЬШИИИИЕ ошибки!
КАНЦТОВАР1
ЗТ^се	1014-
подробнее»

Смешные комиксы,веб-комиксы с юмором и их переводы ошибка ошибки мама сын песочница

КАНЦТОВАРЫ (п‘]Г’ййа Кокая большааая стирательмая резинка! Это что бы стирать БОЛЬШИИИИЕ ошибки! КАНЦТОВАР1 ЗТ^се 1014-
1 TiK*«m>'0'*rA»o»0«M Как выглядят ошибки в Python