Свежая презентация про полетный софт в SpaceX

Свежая презентация про полетный софт в SpaceX в целом, и про миграцию с make на Bazel в частности:

Основные моменты:

  • Два основных репозитория: один содержит полетный код, второй - код симуляции. Более миллиона строк C++ в каждом. Немного Python.
  • Используется своя версия Linux, поддержкой которой занимается отдельная команда.
  • C++ код собирается под несколько разных процессорных архитектур.
  • Полетный код для Falcon и Dragon собирается из одного репозитория.
  • “Test like you fly” - код тестируется в тех же самых условиях, что наблюдаются в полете. Софт и железо тестируются как единая интегрированная система.
  • Система непрерывной интеграции выполняет более 8 тысяч заданий в день.

Вторая половина презентации посвящена миграции с древней системы сборки на основе make на более современный Bazel. Эта часть будет интересна в основном тем, кто интересуется системами сборки кода.

CEX

Компания Rocket Lab сегодня собиралась запустить второй Electron, но попытка сорвалась из-за погоды. Фотограция заправленной ракеты на пусковом столе напомнила забавную историю из ранней истории SpaceX:

Electron. Wet dress rehearsal on Nov 30th, 2017.

У первой версии Falcon 9 в 2009 году на боку была надпись “SPACEX” во весь рост:

Falcon 9 is vectical.

Однако при заправке бак с жидким кислородом покрылся инеем, превратив надпись в “CEX”. Этот забавный просчет был учтен и в дальнейшем надпись сдвинули вниз, на бак с керосином:

Falcon 9 is on the pad.

Отладка злого бага в Go runtime

Отличная статья про ловлю злого бага в Go runtime. Мне больше всего понравился момент, когда выясняется, что ошибочное поведение зависит от значения флага CONFIG_OPTIMIZE_INLINING. Вроде бы и вот она причина, и вместе с тем значение флага никак не указывает на проблемный участок кода. Автор расследования находит отличный выход из положения…

Сны

Я в начале ноября ездил с семьей в отпуск в Эквадор - посмотреть на галапагосских черепах и прочих игуан. Я про это как-нибудь потом подробнее напишу. По пути назад мы заехали на несколько дней в Кито (столица Эквадора). Кито находится на высоте почти три километра. На такой высоте уже становятся заметны проявления высотной болезни - особенно для свежеприбывших туристов типа нас. В частности первые пару дней не получается нормально спать. Через пару дней к высоте привыкаешь и все становится на свои места.

В первую ночь спать не получалось от слова совсем и поэтому сны были особенно запоминающиеся. Помню как смотрел во сне запуск Зумы. Это было еще до всей этой истории с обтекателем и переносом запуска. В интернете как раз смаковали секретность спутника, многозначительно намекая на Северную Корею.

Read On →

Небесная твердь

Как все уже, наверное, знают, второй запуск с “Восточного” закончился неудачей. По слухам разгонный блок “Фрегат” навернулся о небесную твердь и сгинул в морской пучине, прихватив с собой Метеор-М и остальные 18 спутников. По другой версии, разгонный блок выдал импульс находясь в неправильной ориентации, упав в результате в океан.

Самый забавный момент во всей этой печальной истории, это, без сомнения, высказывание Кураева:

Ответственность за неудачный запуск “Союза-2.1б” с космодрома Восточный лежит на благовещенском епископе Лукиане, который освящал ракету-носитель перед стартом. Об этом радиостанции “Говорит Москва” сказал протодиакон Андрей Кураев.

“Если человек нечто делает, а выходит плохо, то для него это вопрос задуматься, правильно ли он делает. Очень странно, что церковь вроде предоставляет услуги, но никогда не отвечает за качество этих услуг. В этом есть некоторая проблема”, — цитирует Кураева сайт радиостанции.

На профильных сайтах стоит плач Ярославны: во-первых, - “просрали все полимеры”, а во-вторых, - “виновных на кол”. По последнему пункту я уже высказывался. Наказать виновных, конечно, руки чешутся, но пользы от этого на самом деле не много. Мне лично больше интересно как именно пропустили подобную ошибку в программе. Профессиональный интерес, можно сказать.

Не число

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

Сегодня я хотел бы поговорить о такой особенности чисел с плавающей запятой, как “не число”. Он же NaN (not a number). NaN - это специальное значение, которое возвращается как результат некоторых операций - например результат деления ноля на ноль.

Read On →

Разное

Пока мы тут на всех порах заканчиваем Falcon Heavy, Элон презентовал новый вариант марсианской транспортной системы, она же “очень большая ракета”:

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

В рунете, как водится, тут же включится хор “проповедников скорого коллапса америки в целом, и проходимца Маска в частности”. Благо, что сроки у Илона, … не знаю как правильно сказать, - очень оптимистичные, всегда есть к чему прицепиться. Ну нам не привыкать.

Из других неожиданных новостей - Kitya Karlson переехал в Китай. Хотя, учитывая историю его переездов (Япония, Австралия, Канада, и США), - то этот переезд где-то даже логичен. Засиделся в одном месте, чего уж там.

git merge vs git rebase

Прелесть какая:

Sublime Text 3

Вышел Sublime Text 3 и у меня наконец дошли руки его попробовать. Страница с анонсом упирает на производительность - по моим первым ощущениям похоже на правду. Завтра поставлю на работе, посмотрим как он запоет. Новая тема приятна на глаз; шрифты отрисовываются на отлично. Радует также, что у кнопки Replace на панели Find in Files появилась горячая комбинация клавиш. Раньше приходилось мышью щелкать. В общем пока что впечатления самые приятные. Старого не испортили; приятного - добавили.

По случаю ковыряния в настройках довел до ума thefuck под zsh. Эта утилита, название которой на русский вполне точно можно перевести как “бля”, исправляет неправильную набранную команду в консоли. Забытый sudo подставляет или git statis исправляет на git status - стоит только ввести fuck в ответ на ошибочную команду. У меня она почему-то выдавала сообщения вида “fc: event not found: -c”.

Read On →

Неудачные посадки SpaceX