Я давно подозревал, что SpaceX предпочитает запускать на выходных, а не в
будние дни. Проведя очередную субботу в Mission Control,
я решил проверить, так ли это (ну и за одно немного с javascript поиграться).
Фаны SpaceX составили и продолжают пополнять базу запусков SpaceX. В базе указывается время запуска, тип
орбиты и масса другой полезной информации. Согласно этой базе получается вот
такая картина:
Запуски к МКС обычно происходят в конце недели, а вот на ГПО летают чаще в
начале недели. Вторник оказался самым незапускным днем.
А вот если разбить запуски по времени дня, то получается вот такой расклад:
Запуски на низкую орбиту обычно идут в первой половине дня, а на ГПО летают все
больше после обеда или в полночь. Время дня здесь - калифорнийское.
Данные для графиков тянутся напрямую с https://api.spacexdata.com, так что
графики будут обновляться по мере пополнения базы.
Вы наверное уже слышали про сбой системы экстренного оповещения, которая
выдала предупреждение о приближении баллистической ракеты к Гавайским островам
в субботу 13-о числа:
Сегодня я наткнулся на статью, которая вполне объясняет как могло
получится, что такое важное сообщение было послано по ошибке. Это как раз тот
случай, когда одна картинка лучше тысячи слов. Вот интерфейс системы экстренного
оповещения:
В Китае сегодня запустили Великий Поход 3В и, по ходу дела, отбомбились по
собственному населению. Жители городка Xiangdu сняли падение укорителя
на головы видео:
Согласно статье
этот городок находится в выделенной зоне падения частей ракет, что как бы
намекает, что местные жители давно к этому привыкли. Замечу, что Великий Поход
использует НДМГ
и тетраоксид азота
Свежая презентация про полетный софт в SpaceX в целом, и про миграцию с make на
Bazel в частности:
Основные моменты:
Два основных репозитория: один содержит полетный код, второй - код симуляции.
Более миллиона строк C++ в каждом. Немного Python.
Используется своя версия Linux, поддержкой которой занимается отдельная
команда.
C++ код собирается под несколько разных процессорных архитектур.
Полетный код для Falcon и Dragon собирается из одного репозитория.
“Test like you fly” - код тестируется в тех же самых условиях, что наблюдаются
в полете. Софт и железо тестируются как единая интегрированная система.
Система непрерывной интеграции выполняет более 8 тысяч заданий в день.
Вторая половина презентации посвящена миграции с древней системы сборки на
основе make на более современный Bazel. Эта часть будет интересна в основном
тем, кто интересуется системами сборки кода.
Компания Rocket Lab сегодня собиралась
запустить второй Electron, но попытка сорвалась из-за погоды. Фотограция
заправленной ракеты на пусковом столе напомнила забавную историю из ранней
истории SpaceX:
У первой версии Falcon 9 в 2009 году на боку была надпись “SPACEX” во весь рост:
Однако при заправке бак с жидким кислородом покрылся инеем, превратив надпись в
“CEX”. Этот забавный просчет был учтен и в дальнейшем надпись сдвинули вниз, на
бак с керосином:
Отличная статья про ловлю злого бага в Go runtime. Мне больше всего
понравился момент, когда выясняется, что ошибочное поведение зависит от значения
флага CONFIG_OPTIMIZE_INLINING. Вроде бы и вот она причина, и вместе с тем
значение флага никак не указывает на проблемный участок кода. Автор
расследования находит отличный выход из положения…
Я в начале ноября ездил с семьей в отпуск в Эквадор - посмотреть на
галапагосских черепах и прочих игуан. Я про это как-нибудь потом подробнее
напишу. По пути назад мы заехали на несколько дней в Кито (столица Эквадора).
Кито находится на высоте почти три километра. На такой высоте уже становятся
заметны проявления высотной болезни - особенно для свежеприбывших туристов типа
нас. В частности первые пару дней не получается нормально спать. Через пару дней
к высоте привыкаешь и все становится на свои места.
В первую ночь спать не получалось от слова совсем и поэтому сны были особенно
запоминающиеся. Помню как смотрел во сне запуск Зумы.
Это было еще до всей этой истории с обтекателем и переносом запуска. В интернете
как раз смаковали секретность спутника, многозначительно намекая на Северную
Корею.
Как все уже, наверное, знают, второй запуск с “Восточного” закончился неудачей. По слухам разгонный блок “Фрегат” навернулся
о небесную твердь и сгинул в морской пучине, прихватив с собой Метеор-М и
остальные 18 спутников. По другой версии,
разгонный блок выдал импульс находясь в неправильной ориентации, упав в
результате в океан.
Самый забавный момент во всей этой печальной истории, это, без сомнения,
высказывание Кураева:
Ответственность за неудачный запуск “Союза-2.1б” с космодрома Восточный лежит
на благовещенском епископе Лукиане, который освящал ракету-носитель перед
стартом. Об этом радиостанции “Говорит Москва” сказал протодиакон Андрей
Кураев.
“Если человек нечто делает, а выходит плохо, то для него это вопрос
задуматься, правильно ли он делает. Очень странно, что церковь вроде
предоставляет услуги, но никогда не отвечает за качество этих услуг. В этом
есть некоторая проблема”, — цитирует Кураева сайт радиостанции.
На профильных сайтах стоит плач Ярославны: во-первых, - “просрали все полимеры”,
а во-вторых, - “виновных на кол”. По последнему пункту я уже высказывался. Наказать виновных, конечно, руки
чешутся, но пользы от этого на самом деле не много. Мне лично больше интересно
как именно пропустили подобную ошибку в программе. Профессиональный интерес,
можно сказать.
Числа с плавающей запятой обманчиво привычны и из-за этого гораздо более коварны,
чем кажется. Общеизвестно, что результат вычислений с плавающей запятой нельзя
сравнивать на точное равенство - из-за погрешности вычислений совпадение двух
величин с точностью до бита маловероятен. Но это только самая вершина айсберга.
На точность влияет порядок вычислений, используемая платформа, математическая
библиотека, процессор и т.д.
Сегодня я хотел бы поговорить о такой особенности чисел с плавающей запятой, как
“не число”. Он же NaN (not a number). NaN - это специальное значение, которое
возвращается как результат некоторых операций - например результат деления ноля
на ноль.