<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Алексей Пахунов</title>
    <link>https://blog.not-a-kernel-guy.com/</link>
    <description>Recent content on Алексей Пахунов</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ru-ru</language>
    <lastBuildDate>Sun, 02 Mar 2025 15:19:42 -0800</lastBuildDate>
    
        <atom:link href="https://blog.not-a-kernel-guy.com/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Blue Ghost</title>
      <link>https://blog.not-a-kernel-guy.com/2025/03/02/blue-ghost/</link>
      <pubDate>Sun, 02 Mar 2025 15:19:42 -0800</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2025/03/02/blue-ghost/</guid>
      <description>&lt;p&gt;Пока мы следили, как у клоунов получается рулить страной (получается из рук вон
плохо), мы пропустили грандиозное событие. Частная компания Firefly Aerospace
впервые в истории &lt;a href=&#34;https://fireflyspace.com/news/blue-ghost-mission-1-live-updates/&#34;&gt;осуществила успешную посадку на поверхность Луны&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;2025/03/54359866846_dc14b1ff34_o-2048x1536.jpg&#34;&gt;&lt;img src=&#34;2025/03/54359866846_dc14b1ff34_o-2048x1536-thumb.jpg&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Это грандиозный успех частной космонавтики. На &lt;a href=&#34;https://fireflyspace.com/missions/blue-ghost-mission-1/&#34;&gt;странице миссии&lt;/a&gt; можно
почитать подробнее о целях и планах на этот полет. Или можно просто посмотреть на
&lt;a href=&#34;https://www.flickr.com/photos/fireflyspace/albums/72177720313239766/&#34;&gt;красивые фотографии&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Кстати, замечу, что это та самая компания, которую американские регуляторы
отжимали у украинского предпринимателя Максима Полякова в 21-22-м году под
предлогом, что он-де потенциальный шпион.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;the most damaging claim the US could hit Polyakov with was that he hailed from
Ukraine, which is near Russia, and that Russia is an enemy of the US in space.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;наиболее серьезное обвинение, которое США могли бы предъявить Полякову,
заключалось в том, что он из Украины, которая находится рядом с Россией, которая
является врагом США в космосе.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;В феврале 2022 года Поляков согласился продать свою долю в компании. Два года
спустя, после полномасштабного вторжения России в Украину, &lt;a href=&#34;https://arstechnica.com/space/2024/07/feds-who-forced-ukrainian-investor-to-sell-rocket-company-backtrack-years-later/&#34;&gt;власти США сняли все
ограничения, наложенные на Полякова и связанные с ним компании&lt;/a&gt;. &amp;ldquo;История
рассудит всех&amp;rdquo;, сказал Поляков при заключении невыгодной для него сделки.
Удивительно, но история показала, кто есть кто уже два года спустя.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Ёбаный стыд</title>
      <link>https://blog.not-a-kernel-guy.com/2025/02/24/humiliation-and-disgrace/</link>
      <pubDate>Mon, 24 Feb 2025 20:06:10 -0800</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2025/02/24/humiliation-and-disgrace/</guid>
      <description>&lt;p&gt;На одинадцатый год аннексии Крыма, через три года полномасштабной войны,
представитель США в ООН голосует против резолюции, называющей россию агрессором.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://apnews.com/article/un-russia-ukraine-war-resolution-trump-zelenskyy-cde221e5850196776525403e788c272c&#34;&gt;&lt;img src=&#34;https://blog.not-a-kernel-guy.com/2025/02/us-joins-russia-resolution.webp&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Какой позор! Никогда бы не смог представить, что такое может произойти.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>451 градус по Фаренгейту</title>
      <link>https://blog.not-a-kernel-guy.com/2025/01/20/p/</link>
      <pubDate>Mon, 20 Jan 2025 19:05:01 -0800</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2025/01/20/p/</guid>
      <description>&lt;p&gt;Нда, денек сегодня с самого утра не задался. Я полагаю, что все в курсе того, как
прошла коронация&amp;hellip; Ну там зигование с трибуны, облавы на нелегалов начиная со
вторника, &lt;del&gt;развод лохов на бабло&lt;/del&gt; запуск именной криптомонеты, помилование
соучастников, и т.д. и т.п. Если не в курсе - то я вам от всей души завидую.&lt;/p&gt;
&lt;p&gt;А самое неприятное это то, что все это результат свободного выбора большинства
избирателей. Избирателей, которым често и откровенно, без стыда и стеснения,
рассказывали о своих планах в случае избрания. Которые говорили &amp;ldquo;да он не такой&amp;rdquo;,
&amp;ldquo;он не сделает то, о чем говорит&amp;rdquo;, &amp;ldquo;вы неправильно его поняли&amp;rdquo;. Которые выполне
довольны результатами на сегодняшний день и которых, похоже, больше не интересуют
цены на яйца.&lt;/p&gt;
&lt;p&gt;Походу получется &amp;ldquo;451 градус по Фаренгейту&amp;rdquo; - это никакая не художественная
литература, а документальная книга. Просто все имена заменены для соблюдения
анонимности. На страже спокойствия граждан стоит непреодолимая стена на границе -
и коричневые люди, и страшный гендер не смогут через неё перелезть.&lt;/p&gt;
&lt;p&gt;А нам всем за эту кашу придется отвечать&amp;hellip;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Санкции не работают</title>
      <link>https://blog.not-a-kernel-guy.com/2024/10/23/sanctions/</link>
      <pubDate>Wed, 23 Oct 2024 20:25:39 -0700</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2024/10/23/sanctions/</guid>
      <description>&lt;p&gt;Не без злорадства наблюдаю за &lt;a href=&#34;https://habr.com/ru/news/852632/&#34;&gt;эпичным баттхёртом&lt;/a&gt;, воздеванием рук, и
&lt;a href=&#34;https://habr.com/ru/news/852962/&#34;&gt;плачем Ярославны&lt;/a&gt; по поводу &lt;a href=&#34;https://lore.kernel.org/all/2024101835-tiptop-blip-09ed@gregkh/&#34;&gt;удаления подсанкционных русских из списка
мейнтенеров Linux&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Линус, красавчик, тоже &lt;a href=&#34;https://lore.kernel.org/all/CAHk-=whNGNVnYHHSXUAsWds_MoZ-iEgRMQMxZZ0z-jY4uHT+Gg@mail.gmail.com/&#34;&gt;подлил масла в огонь&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;As to sending me a revert patch - please use whatever mush you call
brains. I&amp;rsquo;m Finnish. Did you think I&amp;rsquo;d be &lt;em&gt;supporting&lt;/em&gt; Russian
aggression? Apparently it&amp;rsquo;s not just lack of real news, it&amp;rsquo;s lack of
history knowledge too.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Касательно писем с обратным патчем - пожалуйста включите ту кашу, которую вы
называете мозгами. Я - финн. Вы что думали, я буду &lt;em&gt;поддерживать&lt;/em&gt; российскую
агрессию? Похоже вы не только настояшие новости не смотрите, вы еще и историю
не знаете.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Вой на болотах стоит - под тысячу комментариев только на одном Хабре накатали.&lt;/p&gt;
&lt;p&gt;Так, а что собственно случилось? Да ничего нового - это те самые санкции,
которые не работают. 6 апреля 2022 года вышел &lt;a href=&#34;https://www.federalregister.gov/documents/2022/04/08/2022-07757/prohibiting-new-investment-in-and-certain-services-to-the-russian-federation-in-response-to&#34;&gt;президентский указ №14071&lt;/a&gt;,
запрещающий новые инвестиции в российскую федерацию, экспорт, ре-экспорт,
продажу, и поставку в российскую федерацию услуг из перечня, который будет
позднее определен казначейством в консультации с государственным департаментом.&lt;/p&gt;
&lt;p&gt;Казначейство &lt;a href=&#34;https://ofac.treasury.gov/sanctions-programs-and-country-information/russian-harmful-foreign-activities-sanctions&#34;&gt;принялось за работу&lt;/a&gt; и, в консультации с государственным
департаментом, 12 июня 2024 выкатило &lt;a href=&#34;https://ofac.treasury.gov/media/932951/download?inline&#34;&gt;документ&lt;/a&gt;, определивший, что оказание
IT услуг и разработка софта входят в санкционный список.&lt;/p&gt;
&lt;p&gt;Дополнительно, в 2017 году федеральный судья создал &lt;a href=&#34;https://www.theregister.com/2017/05/13/gnu_gpl_enforceable_contract/&#34;&gt;прецедент&lt;/a&gt;, согласно
которому лицензия GPL - это контракт. Помимо всего прочего, это означает
разработка по лицензии GPL также попадает в вышеназванный санкционный список.&lt;/p&gt;
&lt;p&gt;Решение казначейства выступило в силу 12 сентября 2024 года.&lt;/p&gt;
&lt;p&gt;Linux Foundation - американская компания, Линус Торвальдс и другие разработчики
постоянно проживающие в США - &amp;ldquo;US persons&amp;rdquo;, как это определено в &lt;a href=&#34;https://www.federalregister.gov/documents/2022/04/08/2022-07757/prohibiting-new-investment-in-and-certain-services-to-the-russian-federation-in-response-to&#34;&gt;указе
№14071&lt;/a&gt;, - соответственно они обязаны выполнять санкцонный режим. Иными
словами не работать с людьми, находящимися на территории российской федерации
(за исключением случаев &lt;a href=&#34;https://ofac.treasury.gov/media/932951/download?inline&#34;&gt;определенных казначейством&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;То есть за что боролись, - на то и напоролись. &amp;ldquo;The dildo of consequences rarely
arrives lubed&amp;rdquo; (c).&lt;/p&gt;
&lt;p&gt;А к чему тут злорадство? Да при том, что эта ситуация красиво и наглядно
подсвечивает лицемерие позиции &amp;ldquo;мы вне политики&amp;rdquo;. Я помню, как где-то в конце
марта - начале апреля 2022 года на Хабре появилась статья, про то, как люди
в Ирпине пережили наступление на Киев. Статья была подчеркнуто не про войну.
Речь шла про чисто практичные проблемы: аккумуляторы, связь, логистика. Эта
статья провисела пару часов и была снесена &amp;ldquo;за политику&amp;rdquo;. Типа это чисто
технический ресурс, то-сё.&lt;/p&gt;
&lt;p&gt;На самом деле конечно понятно, что дело в том, что банально неудобно, неприятно,
да и просто стыдно - каждая такая тема напоминает о войне и о том, кто её начал.
Поэтому легче о войне не говорить.&lt;/p&gt;
&lt;p&gt;Но теперь зацепило за живое. Не где-то там ракета в жилой дом, а здесь и сейчас
меня любимого макают головой, причем просто за паспорт. И тут оказывается, что о
политике на &amp;ldquo;сугубо техническом&amp;rdquo; ресурсе можно говорить. И громко возмущатся про
коллективную ответственность, дискриминацию и все такое. &amp;ldquo;Я-то тут при чем?&amp;rdquo; (с)&lt;/p&gt;
&lt;p&gt;Ну поздравляю, теперь политика пришла к вам сама.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Пятый полет Starship</title>
      <link>https://blog.not-a-kernel-guy.com/2024/10/13/booster12-catch/</link>
      <pubDate>Sun, 13 Oct 2024 08:16:03 -0700</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2024/10/13/booster12-catch/</guid>
      <description>&lt;p&gt;Просто нет слов. &lt;a href=&#34;https://www.spacex.com/launches/mission/?missionId=starship-flight-5&#34;&gt;Пятый испытательный полет Starship&lt;/a&gt; прошел как
по маслу. Запустили с первой попытки. Все двигатели отработали все включения как
надо. Starship сел в запланированном месте в Индийском океане, прямо рядом с
буйком, - в результате у нас теперь есть видео посадки со стороны. Ну и самое
интересное - поймали бустер с первой попытки, как будто он всегда так и летал:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.not-a-kernel-guy.com/2024/10/booster12_catch.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Starship, конечно, подгорел при входе в атмосферу, но вроде как меньше чем в
прошлый раз. Довести посадку с орбитальной скорости до обыденности потребует
не один десяток полетов.&lt;/p&gt;
&lt;p&gt;Еще было бы здорово научиться разгонять ловцов креветок из зоны запуска хотя-бы
за полчаса до T-0. А то как то стемно каждый раз гадать до последнего успеет ли
они или придется запуск переносить.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Впечатления от запуска</title>
      <link>https://blog.not-a-kernel-guy.com/2023/04/21/rud/</link>
      <pubDate>Fri, 21 Apr 2023 07:57:59 -0700</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2023/04/21/rud/</guid>
      <description>&lt;p&gt;Очень необычный получился &lt;a href=&#34;https://blog.not-a-kernel-guy.com/2023/04/21/rud/&#34;&gt;запуск&lt;/a&gt;. Первую попытку я наблюдал из нового офиса
Starship Software, куда мы недавно переехали. Это удобно, так как можно
подключиься к произвольной камере, вывести на экран телеметрию и слушать
переговоры операторов. Но при этом не хватает энергии толпы. Вторую попытку я
смотрел уже через стеклянную стену MCCX (тот который Mission Control).
Энергии толпы было хоть отбавляй, но без телеметрии как-то не уютно.&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/-1wcilQ58hI&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Обратный отсчет прошел на удивление гладко - это явно результат многочисленных
заправочных тестов. Каждая попытка выявляет недочеты и по мере их исправления
процесс, в который вовлечены сотни людей, начинает работать как часы.&lt;/p&gt;
&lt;p&gt;В момент запуска казалось, что ракета не отрывается от стола очень долго. Это не
было сюрпризом - запуск 33 двигателей растянут во времени для снижения нагрузок.
Но все равно волнительно, особенно если учесть, что неуход с пускового стола -
это один из худших сценариев при запуске.&lt;/p&gt;
&lt;p&gt;Отказ двигателей и &amp;ldquo;обогащенный двигателем выхлоп&amp;rdquo; был заметен сразу. Особенно
меня впечатлил вид с камеры четко показывающий погашенные двигатели. Метановый
выхлоп очень чист:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.not-a-kernel-guy.com/2023/04/starship_engines.jpg&#34;&gt;&lt;img src=&#34;https://blog.not-a-kernel-guy.com/2023/04/starship_engines.thumbnail.jpg&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Понравилась диаграмма слева показывающая состояние каждого двигателя. Небольшие
расхождения между диаграммой и картинкой - хорошая иллюстрация того, что
определить работает ли двигатель не так-то просто. Это вам не лампочка.&lt;/p&gt;
&lt;p&gt;Позабавила реакция людей на аварию. Сначала зрители пытались впомнить минимальное
достаточное количество двигателей для выхода на орбиту. Потом пошли кадры с самой
ракеты, показывающие вращение, явно выходящее за допустимые рамки. Ну а потом
пошли кульбиты и, наконец, самоликвидация. В этот момент толпа взорвалась
восторженными криками. Сказалось нервное напряжение и неопределенность перед
запуском. В момент разрушения ракеты это все ушло - тест закончился, со старта
ракета ушла успешно, Max Q пройден. Неопределенность сменилась знанием, что мы
достигли очередной вехи (на очень долгом пути) и получили новые данные, которые
помогут нам двигаться дальше.&lt;/p&gt;
&lt;p&gt;Обсуждения запуска в интернете, особенно версии причин аварии, читать забавно.
Комментировать не буду, скажу только, что единственные люди которые что-то
действительно знают - это люди, которые непосредственно занимаются расследованием.
Все остальное - это слухи и выдуманные из пальца теории. Некоторые из них
окажутся в конечном итоге верными просто в силу закона больших чисел, а не потому,
что их авторы что-то знали.&lt;/p&gt;
&lt;p&gt;Как-то так вот.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Первый орбитальный полет Starship</title>
      <link>https://blog.not-a-kernel-guy.com/2023/04/16/starship-flight-test/</link>
      <pubDate>Sun, 16 Apr 2023 17:39:02 -0700</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2023/04/16/starship-flight-test/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.spacex.com/launches/mission/?missionId=starship-flight-test&#34;&gt;Starship готов к первому испытательному полету на орбиту&lt;/a&gt;. Пусковое окно
продолжительностью в два с половиной часа открывается 17 апреля в 7:00 утра
центрального времени (12:00 по Гринвичу, 2023-04-17T12:00:00Z).&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.not-a-kernel-guy.com/2023/04/starship_stacked_1.jpg&#34;&gt;&lt;img src=&#34;https://blog.not-a-kernel-guy.com/2023/04/starship_stacked_1.thumbnail.jpg&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Связка Starship (S24) и Super Heavy (B7) стартует с &lt;a href=&#34;https://goo.gl/maps/e5PBp3Lfdh5y7WQcA&#34;&gt;космодрома, расположенного
в южной оконечности Техаса на берегу Мексиканского залива&lt;/a&gt;. Через 55 секунд
после старта, ракета пройдет MaxQ - участок траектории, на котором ракета испытывает
максимальные аэродинамаческие нагрузки. После разделения Starship и Super Heavy,
бустер выполнит маневр возвращения к точке старта и попытается приводнится в
Мексиканском заливе. Похожим образом отрабатывалась посадка первой ступени Falcon 9
в море до попыток посадить её на баржу. После выхода на орбиту, Starship пролетит
над Африкой и Индийским океаном и войдет в атмосферу над Тихим океаном недалеко от
Гавайских островов. Неформальное название этого полета &amp;ldquo;Pineapple Express&amp;rdquo; - это
как раз намек на Гавайи. Скорее всего Starship разрушится в верхних слоях
атмосферы. Посадка на двигателях не планируется.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.not-a-kernel-guy.com/2023/04/SPACEX_STARSHIP_INFOGRAPHIC_041223_web_096b650bff.png&#34;&gt;&lt;img src=&#34;https://blog.not-a-kernel-guy.com/2023/04/SPACEX_STARSHIP_INFOGRAPHIC_041223_web_096b650bff.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;В этом полете отрабатывается столько новых технологий и решений, что предсказывать
в каком месте запуск пойдет не по плану - гиблое дело. Наверняка можно сказать
только то, что по результатам теста мы обязательно узнаем что-то новое. Я лично
считаю, что запуск можно будет считать удачным в случае, если ракета уйдет со
стартового стола. Все остальное будет очень и очень приятным бонусом.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.not-a-kernel-guy.com/2023/04/starship_stacked_2.jpg&#34;&gt;&lt;img src=&#34;https://blog.not-a-kernel-guy.com/2023/04/starship_stacked_2.thumbnail.jpg&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Пожелайте нам удачи. Godspeed, Starship!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Братья по оружию</title>
      <link>https://blog.not-a-kernel-guy.com/2023/02/19/brothers-in-arms/</link>
      <pubDate>Sun, 19 Feb 2023 20:30:04 -0800</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2023/02/19/brothers-in-arms/</guid>
      <description>&lt;p&gt;Эмма Стейнбаккен (Emma Steinbakken) под аккомпанемент оркестра Норвежского национального
радио исполняет песню &amp;ldquo;Братья по оружию&amp;rdquo; в эфире &lt;a href=&#34;https://www.nrk.no&#34;&gt;Норвежского национального радио&lt;/a&gt;
(осуществляет теле- и радиовещание в Норвегии). Исполнение посвящено борьбе Украины
против российской агрессии и сопровождается известными кадрами войны:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.nrk.no/video/ett-aar-med-krig-i-europa-emma-steinbakken-og-kork-fremforer-brothers-in-arms_53ea2657-c239-4118-b200-590251ca5f36&#34;&gt;&lt;img src=&#34;https://blog.not-a-kernel-guy.com/2023/02/emma_steinbakken.jpg&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Сингл &amp;ldquo;Братья по оружию&amp;rdquo; вошел в &lt;a href=&#34;https://en.wikipedia.org/wiki/Brothers_in_Arms_(Dire_Straits_album)&#34;&gt;одноименный альбом Dire Straits&lt;/a&gt;, выпущенный в 1985
году.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;These mist covered mountains&lt;br&gt;
Are a home now for me&lt;br&gt;
But my home is the lowlands&lt;br&gt;
And always will be&lt;br&gt;
Some day you&amp;rsquo;ll return to&lt;br&gt;
Your valleys and your farms&lt;br&gt;
And you&amp;rsquo;ll no longer burn&lt;br&gt;
To be brothers in arms&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Through these fields of destruction&lt;br&gt;
Baptisms of fire&lt;br&gt;
I&amp;rsquo;ve witnessed your suffering&lt;br&gt;
As the battle raged higher&lt;br&gt;
And though they did hurt me so bad&lt;br&gt;
In the fear and alarm&lt;br&gt;
You did not desert me&lt;br&gt;
My brothers in arms&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;There&amp;rsquo;s so many different worlds&lt;br&gt;
So many different suns&lt;br&gt;
And we have just one world&lt;br&gt;
But we live in different ones&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Now the sun&amp;rsquo;s gone to hell&lt;br&gt;
And the moon riding high&lt;br&gt;
Let me bid you farewell&lt;br&gt;
Every man has to die&lt;br&gt;
But it&amp;rsquo;s written in the starlight&lt;br&gt;
And every line in your palm&lt;br&gt;
We&amp;rsquo;re fools to make war&lt;br&gt;
On our brothers in arms&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    
    <item>
      <title>33 раптора</title>
      <link>https://blog.not-a-kernel-guy.com/2023/02/09/static-fire/</link>
      <pubDate>Thu, 09 Feb 2023 20:44:39 -0800</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2023/02/09/static-fire/</guid>
      <description>&lt;p&gt;Ура! Ура! Сегодня в Техасе успешно прожгли 31 раптор:&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/CR0f1WjMV-Q&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Всего на бустере 33 двигателя. Один отключили операторы во время подготовки к тесту.
Еще один отлючила автоматика.&lt;/p&gt;
&lt;p&gt;Как мне кажеться, два отключенных двигателя сделали этот тест намого полезнее, чем если
бы все 33 двигателя отработали штатно. Во-первых, это означает, что система управления
обладает достаточной гибкостью, чтобы в последний момент отключить один двигатель.
А во-вторых, мы еще раз проверили, что бортовая диагностика работает и реагирует на
аномалии.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>С днем рожденья!</title>
      <link>https://blog.not-a-kernel-guy.com/2022/10/07/the-bridge-is-out/</link>
      <pubDate>Fri, 07 Oct 2022 23:14:12 -0700</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2022/10/07/the-bridge-is-out/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;:&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/jBWddlRvC14&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;А ведь Лука наверняка был уверен, что никто его не переплюнет с &lt;a href=&#34;https://abcnews.go.com/International/wireStory/leader-belarus-gifts-putin-tractor-70th-birthday-91164866&#34;&gt;трактором,
который он презентовал Темнейшему на его юбилей&lt;/a&gt;. А вот поди ж ты:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.not-a-kernel-guy.com/2022/10/the-bridge-is-out.jpg&#34;&gt;&lt;img src=&#34;https://blog.not-a-kernel-guy.com/2022/10/the-bridge-is-out-small.jpg&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;С днем рожденья!&lt;/p&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;BREAKING:&lt;br&gt;&lt;br&gt;A fire started on the Crimean Bridge. According to the official version, the fuel tank is on fire. It is clearly visible that the roadbed is destroyed. &lt;a href=&#34;https://t.co/gP3OlGNLmL&#34;&gt;pic.twitter.com/gP3OlGNLmL&lt;/a&gt;&lt;/p&gt;&amp;mdash; 301 Military (@301military) &lt;a href=&#34;https://twitter.com/301military/status/1578612940961300481?ref_src=twsrc%5Etfw&#34;&gt;October 8, 2022&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;


&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;Wow. The road bridge appears to have been been damaged too. So it doesn’t appear to have been a bomb under the rail carriage. &lt;a href=&#34;https://t.co/pbx2ZMOZ7U&#34;&gt;pic.twitter.com/pbx2ZMOZ7U&lt;/a&gt;&lt;/p&gt;&amp;mdash; Oliver Carroll (@olliecarroll) &lt;a href=&#34;https://twitter.com/olliecarroll/status/1578601897531166723?ref_src=twsrc%5Etfw&#34;&gt;October 8, 2022&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;</description>
    </item>
    
    <item>
      <title>Немного юмора для поднятия настроения</title>
      <link>https://blog.not-a-kernel-guy.com/2022/03/07/kafka/</link>
      <pubDate>Mon, 07 Mar 2022 22:07:31 -0800</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2022/03/07/kafka/</guid>
      <description>&lt;p&gt;Некоторые новости нынче - это что-то не из нашей реальности. Или может наоборот, -
это единственные новости оставшиеся от нормальной реальности&amp;hellip;&lt;/p&gt;
&lt;p&gt;Вот, например, киевлянка сбила вражеский дрон банкой с огурцами:&lt;/p&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;In Kyiv a woman knocked down a Russian drone from a balcony with a jar of cucumbers. How did they expect to occupy this country?&lt;/p&gt;&amp;mdash; Liubov Tsybulska (@TsybulskaLiubov) &lt;a href=&#34;https://twitter.com/TsybulskaLiubov/status/1500075457798189057?ref_src=twsrc%5Etfw&#34;&gt;March 5, 2022&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;


&lt;p&gt;Как потом оказалось - фейк. На самом деле в банке были &lt;a href=&#34;https://life.liga.net/istoriyi/article/eto-byli-pomidory-ligalife-nashla-kievlyanku-sbivshuyu-vrajeskiy-dron-bankoy-konservatsii&#34;&gt;помидоры со сливой&lt;/a&gt;,
любимый рецепт хозяйки.&lt;/p&gt;
&lt;p&gt;Или, скажем, Батутыч. Ведь как раньше хорошо было. Похамливал в твиттере,
хвалился российскими движками и единственным средством доставки космонавтов на
станцию. Вежливые американцы и виду не подали, что заметили эти выпады. Они
просто создали новый пилотируемый корабль, избавились от зависимости от
российских двигателей, отобрали рынок пусковых услуг и планируют теперь
собственную лунную станцию. Батутыч, обладая дальновидностью обиженного
восьмиклассника, продолжил в своем стиле. Роскосмос гордо ушел из Куру,
отказался запускать спутники One Web (деньги не вернули), нарисовал &amp;ldquo;V&amp;rdquo; и &amp;ldquo;Z&amp;rdquo;
на Байконурском транспортере для ракет:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://twitter.com/Rogozin/status/1499711693655625733?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1499711693655625733%7Ctwgr%5E%7Ctwcon%5Es1_c10&amp;amp;ref_url=https%3A%2F%2Feurasiantimes.com%2Frussia-paints-its-soyuz-rocket-transporter-with-ukraine-invasion-symbol%2F&#34;&gt;&lt;img src=&#34;https://blog.not-a-kernel-guy.com/2022/03/rogozin_v_z.jpg&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;И что вы думаете, сначала Маск потроллил Батутыча, намекнув, что за
американскими метлами дело не станет:&lt;/p&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;🇺🇸🇺🇸  American Broomstick  🇺🇸🇺🇸 &lt;a href=&#34;https://t.co/r2hJvFQosS&#34;&gt;pic.twitter.com/r2hJvFQosS&lt;/a&gt;&lt;/p&gt;&amp;mdash; Elon Musk (@elonmusk) &lt;a href=&#34;https://twitter.com/elonmusk/status/1499423704983355393?ref_src=twsrc%5Etfw&#34;&gt;March 3, 2022&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;


&lt;p&gt;А теперь вот, &lt;a href=&#34;https://vakhnenko.livejournal.com/393868.html&#34;&gt;Скотт Келли отхлестал его по щекам на чистейшем русском языке&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Сергей Кислица, постоянный представитель Украины в ООН, жжет напалмом
не переставая. Некоторые из его (неточных) цитат:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;(to Russian abmassador) Most diplomats children are proud of their parents.
I hate to think what your children think of you.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;(обращаясь к русскому послу) Дети большинства дипломатов гордятся своими
родителями. Боюсь представить себе, что ваши дети думают о вас.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;There is no purgatory for war criminals, they go straight to hell.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Военные преступники не попадают в чистилище. Они отправляются прямиком в ад.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;I&amp;rsquo;d like to have a moment of silence to pray for souls of who has been already
killed, for souls of those who may be killed, and now I invite the Russian
ambassador to pray for his salvation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Прощу минуту тишины, чтобы помолится за души убитых и тех, кого еще могут
убить, и я приглашаю российского посла помолится за спасение его души.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Его последний перл - ответ на твит Лаврова, про цели &amp;ldquo;специальной военной операции&amp;rdquo;, мать её:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The goal of Russian special millitary operation is to stop any war that could
take place on Ukrainian territory or that could start from there.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Цель российской специальной военной операции - остановить или предотвратить любою
войну на территории Украины.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Т.е. мы начали войну, чтобы остановить войну. Кафка и Оруэлл от зависти удавились
бы.&lt;/p&gt;
&lt;p&gt;Кислица ответил на этот бред подобающе:&lt;/p&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;Ukrainian Ambassador holds up a tweet from Lavrov and advises Russian diplomats that they can obtain assistance for mental help from the NHS by dialing 111 &lt;a href=&#34;https://t.co/bFoqyKYJ6Q&#34;&gt;pic.twitter.com/bFoqyKYJ6Q&lt;/a&gt;&lt;/p&gt;&amp;mdash; Acyn (@Acyn) &lt;a href=&#34;https://twitter.com/Acyn/status/1500962329269211138?ref_src=twsrc%5Etfw&#34;&gt;March 7, 2022&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;


&lt;blockquote&gt;
&lt;p&gt;Let me remind the russian diplomats that in London in case of need for
mental help you can dial NHS line 111. Thank you.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Позвольте мне напомнить российским дипломатам, что в Лондоне, при необходимости
в ментальной помощи, можно звонить 111. Спасибо.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;P.S. Я еще наши в Черном море вальнули по вражескому корвету артиллерией. И попали.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Третий день войны</title>
      <link>https://blog.not-a-kernel-guy.com/2022/02/26/mordor/</link>
      <pubDate>Sat, 26 Feb 2022 18:17:36 -0800</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2022/02/26/mordor/</guid>
      <description>&lt;p&gt;Мы узнали о начале войны по дороге домой со школьного концерта сына. Полный шок,
бъет озноб, не веришь в то, что это происходит на самом деле. Залипли в новости,
искали любую доступную информацию. Выуживали любой слух.&lt;/p&gt;
&lt;p&gt;К концу второго дня дрожь в руках почти прошла. Злость осталась. Начал понемногу
отличать явные вбросы от просто слухов. Узнал, что уничтожен Южмаш:&lt;/p&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;According to Twitter reports, Yuzhnoye &amp;amp; Yuzhmash in the Ukraine have been completely destroyed in the Ukraine war ( confirmation pending). So if this is confirmed, further production of &lt;a href=&#34;https://twitter.com/hashtag/Antares?src=hash&amp;amp;ref_src=twsrc%5Etfw&#34;&gt;#Antares&lt;/a&gt; rockets for ISS supply won&amp;#39;t be possible, as the 1st stage body is built there. &lt;a href=&#34;https://t.co/JDmiSdrPTN&#34;&gt;https://t.co/JDmiSdrPTN&lt;/a&gt;&lt;/p&gt;&amp;mdash; Gunter Krebs 🚀 🛰 🇺🇦 🏳️‍🌈 (@Skyrocket71) &lt;a href=&#34;https://twitter.com/Skyrocket71/status/1497224286435741701?ref_src=twsrc%5Etfw&#34;&gt;February 25, 2022&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;


&lt;p&gt;Южмаш производил первые ступени Антареса, который используется для вывода
грузовиков к Международной космической станции. Сильно повлиять на снабжение
станции это не должно, но у нас всеръез задумались &lt;a href=&#34;https://smoliarm.livejournal.com/534198.html&#34;&gt;переживет ли МКС нападение
России на Украину&lt;/a&gt;. Опасения подтвердил сам батут всея Руси:&lt;/p&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;ru&#34; dir=&#34;ltr&#34;&gt;САНКЦИИ АЛЬЦ-ГЕЙМЕРА&lt;br&gt;Байден заявил, что новые санкции коснутся российской космической программы. Ок. Остается выяснить детали:&lt;br&gt;1. Вы хотите перекрыть нам доступ к радиационностойкой микроэлектронике космического назначения? Так вы это уже сделали вполне официально в 2014 году.&lt;/p&gt;&amp;mdash; ROGOZIN (@Rogozin) &lt;a href=&#34;https://twitter.com/Rogozin/status/1496933548372209669?ref_src=twsrc%5Etfw&#34;&gt;February 24, 2022&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;


&lt;p&gt;К третьему дню реакция мира на вторжение пошла по нарастающей, как лавина. Для
российских авиалиний закрыли небо, Германию дожали до согласия на отключения
России от SWIFT и на поставки оружия Украине, Польский министр обороны натвитил
про конвой с вооружением для Украины:&lt;/p&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;pl&#34; dir=&#34;ltr&#34;&gt;Konwój z amunicją, którą przekazujemy Ukrainie dotarł już do naszych sąsiadów. Wspieramy Ukraińców, jesteśmy solidarni i stanowczo sprzeciwiamy się rosyjskiej agresji. &lt;a href=&#34;https://t.co/Wx5zoXBnBe&#34;&gt;pic.twitter.com/Wx5zoXBnBe&lt;/a&gt;&lt;/p&gt;&amp;mdash; Mariusz Błaszczak (@mblaszczak) &lt;a href=&#34;https://twitter.com/mblaszczak/status/1497258005955547143?ref_src=twsrc%5Etfw&#34;&gt;February 25, 2022&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;


&lt;p&gt;Польша, Словакия, Румыния и куча другис стран стали принимать беженцев - без виз,
без загранпаспортов, с домашними животными (!). Спортсмены отказывются играть
против России. Илон Маск написал о включении Starlink на территории Украины:&lt;/p&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;Starlink terminals are coming to Ukraine! Thank you &lt;a href=&#34;https://twitter.com/elonmusk?ref_src=twsrc%5Etfw&#34;&gt;@elonmusk&lt;/a&gt;, thank you everyone, who supported Ukraine! &lt;a href=&#34;https://t.co/xHDYHunhsW&#34;&gt;pic.twitter.com/xHDYHunhsW&lt;/a&gt;&lt;/p&gt;&amp;mdash; Mykhailo Fedorov (@FedorovMykhailo) &lt;a href=&#34;https://twitter.com/FedorovMykhailo/status/1497704284196155394?ref_src=twsrc%5Etfw&#34;&gt;February 26, 2022&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;


&lt;p&gt;Вооруженные силу Украины дают по зубам наступающим оркам. Жгут танки, сбивают
самолеты, отбиваются от десанта в тылу. Орки сдаются в плен и плетут байки про
&amp;ldquo;учения&amp;rdquo;. Тероборона дает прикурить. Блин, даже гопники отжали у русских БТР на
Оболони. Хуйло нервно объясняет олигархам почему тех посылают вслед за
русским военным кораблем.&lt;/p&gt;
&lt;p&gt;При всем при этом, это еще только начало. Даже до намека на победу еще пилить и
пилить. Киев и другие города по-прежнему отчаянно обстреливают и пытаются взять
под свой контроль.&lt;/p&gt;
&lt;p&gt;Мы сегодня ходили на митинг против войны в Лос Анжелесе. Я никогда не видел
столько украинских флагов в Лос Анджелесе в одном месте.&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/fLb-11IouL4&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Я обратил внимание на лица водителей сигналящих в поддержку митингующим. Лица
всех цветов и разреза глаз. Каждое с одной и той же сдержанной улыбкой и
восторгом в глазах.&lt;/p&gt;
&lt;p&gt;Украина выстоит. Слава Україні!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Ложь</title>
      <link>https://blog.not-a-kernel-guy.com/2022/02/21/lies/</link>
      <pubDate>Mon, 21 Feb 2022 18:21:29 -0800</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2022/02/21/lies/</guid>
      <description>&lt;p&gt;Россия в очередной раз напала на Украину. Скажу только несколько вещей.&lt;/p&gt;
&lt;p&gt;Во-первых, ложь пронизывает эту кампанию от начала и до конца. Лидеры врут про
&amp;ldquo;притеснение русских&amp;rdquo; и &amp;ldquo;базы НАТО в Украине&amp;rdquo;; пропагандисты врут про &amp;ldquo;распятых
мальчиков&amp;rdquo; и &amp;ldquo;геноцид&amp;rdquo;; а простые люди врут про &amp;ldquo;братский народ&amp;rdquo; и &amp;ldquo;свою
неспособность повлиять на события&amp;rdquo;. Так вот знайте - &amp;ldquo;простые люди&amp;rdquo; - они в
ответе за ту власть, которую они приручили. Вы хотели &amp;ldquo;прижать хохлов&amp;rdquo;? Вы
будете отвечаеть за действия своей власти.&lt;/p&gt;
&lt;p&gt;Во-вторых, весь последний год я наблюдал удивительную трансформацию. Мир
окончательно перестал верить заявлениям России. Если ранее возмущение вызывали
только захват Крыма, сбитый боинг и отравления полонием, то сейчас любое
заявление из России воспринимается как заведомая и часто очень топорная ложь.
Мир на стороне Украины.&lt;/p&gt;
&lt;p&gt;В-третьих, Украина безуслово готова дать достойный отпор врагу. Это будет
непросто, но Украина выстоит. Слава Україні!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Туманность Ориона</title>
      <link>https://blog.not-a-kernel-guy.com/2021/12/23/%D1%82%D1%83%D0%BC%D0%B0%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D1%8C-%D0%BE%D1%80%D0%B8%D0%BE%D0%BD%D0%B0/</link>
      <pubDate>Thu, 23 Dec 2021 19:27:05 -0800</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2021/12/23/%D1%82%D1%83%D0%BC%D0%B0%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D1%8C-%D0%BE%D1%80%D0%B8%D0%BE%D0%BD%D0%B0/</guid>
      <description>&lt;p&gt;Туманность Ориона, 42-я &amp;ldquo;не комета&amp;rdquo; из каталога Мессье, расположенная на расстоянии около 1344 световых лет от Земли:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.not-a-kernel-guy.com/2021/12/ijt5sm44fd781.jpg&#34;&gt;&lt;img src=&#34;https://blog.not-a-kernel-guy.com/2021/12/ijt5sm44fd781_small.jpg&#34; alt=&#34;Ganymede&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.reddit.com/r/Astronomy/comments/rn7hal/orion_nebula_captured_in_just_over_50_minutes/&#34;&gt;Отсюда&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Загрузка кода в чужой процесс на Linux</title>
      <link>https://blog.not-a-kernel-guy.com/2021/07/18/lx_preload/</link>
      <pubDate>Sun, 18 Jul 2021 19:56:02 -0700</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2021/07/18/lx_preload/</guid>
      <description>&lt;p&gt;Оказывается грузить свой код в чужой процесс на Linux ничуть не менее
увлекательно, чем на Windows. Я раньше не наведывался в этой темный угол, а вот
на днях заглянул. Содержимое угла привычно обнадежило: залатанный древний
загрузчик, дохлые мухи, пара растяжек, и грабли кругом. Все как мы любим. Задача
была такая. Есть несколько загружаемых с помощью &lt;a href=&#34;https://stackoverflow.com/questions/426230/what-is-the-ld-preload-trick&#34;&gt;&lt;code&gt;LD_PRELOAD&lt;/code&gt;&lt;/a&gt; модулей.
Модули переопределяют поведение небольшого числа POSIX функций. Требовалось
перенести сборку модулей на более свежую версию GCC. Казалось что может быть
проще?.. Да, давно уже не ощущал себя насколько наивным, аж ностальгия
пробивает. Ниже следует список обнаруженных граблей.&lt;/p&gt;
&lt;p&gt;Переменная окружения &lt;code&gt;LD_PRELOAD&lt;/code&gt; указывает загрузчику список модулей, которые
дополнительно загружаются в процесс и используются для разрешения символов в
первую очередь. Например, если определить в &lt;code&gt;foobar.so&lt;/code&gt; функцию &lt;code&gt;read()&lt;/code&gt; и
запустить &lt;code&gt;LD_PRELOAD=foobar.so /bin/sh&lt;/code&gt;, то вместо системной функции read(),
/bin/sh будет звать read() из &lt;code&gt;foobar.so&lt;/code&gt;. Дополнительно, &lt;code&gt;read()&lt;/code&gt; из
&lt;code&gt;foobar.so&lt;/code&gt; может позвать &lt;a href=&#34;https://man7.org/linux/man-pages/man3/dlsym.3.html&#34;&gt;&lt;code&gt;dlsym(RTLD_NEXT, “read”)&lt;/code&gt;&lt;/a&gt;, чтобы найти адрес
“настоящей” &lt;code&gt;read()&lt;/code&gt;. Очень часто этот механизм используется, чтобы изменить
поведение функции в некоторых только в определенных случаях.&lt;/p&gt;
&lt;p&gt;Грабли №1. Не получается смешивать в одном процессе модули собранные для разных
реализаций &lt;code&gt;libc&lt;/code&gt;, например не получается загрузить &lt;code&gt;foobar.so&lt;/code&gt; собранный
под &lt;a href=&#34;https://musl.libc.org/&#34;&gt;MUSL&lt;/a&gt; в процесс &lt;code&gt;/bin/sh&lt;/code&gt;, собранный под &lt;a href=&#34;https://www.gnu.org/software/libc/&#34;&gt;glibc&lt;/a&gt;. Разные версии
glibc работают, но только потому, что glibc серьезно относится к обратной
совместимости. Я не разбираюсь в вопросе в достаточной степени, чтобы судить о
причинах такого ограничения. Возможно даже, что есть способ создать загружаемый
модуль, который зависит только от системных вызовов ядра. У меня пока не
получилось.&lt;/p&gt;
&lt;p&gt;Грабли №2. &lt;code&gt;LD_PRELOAD&lt;/code&gt; - переменная окружения. Как правило, хотя и не
обязательно, окружение наследуется дочерними процессами. Как результат следует
ожидать, что загружаемый модуль обязательно будет загружен в процессы, до
которых нам дела нет. Верно и обратное - модуль не будет загружен в нужный
процесс, так как один из родителей решил запустить ребенка с другим окружением.&lt;/p&gt;
&lt;p&gt;Модули в формате ELF позволяют определять &lt;a href=&#34;https://stackoverflow.com/questions/2053029/how-exactly-does-attribute-constructor-work&#34;&gt;конструкторы и деструкторы&lt;/a&gt; -
функции которые будут вызваны при загрузке и выгрузке модуля. Через них,
например, реализуется вызов конструкторов и деструкторов глобальных объектов в
С++. Очень удобный и расширяемый механизм.&lt;/p&gt;
&lt;p&gt;Грабли №3. &lt;code&gt;LD_PRELOAD&lt;/code&gt; разрешает указывать несколько модулей, но порядок вызова
их конструкторов и деструкторов зависит от реализации &lt;code&gt;libc&lt;/code&gt;. glibc вызывает
их в обратном порядке. MUSL, начиная с некоторой версии, - в прямом.&lt;/p&gt;
&lt;p&gt;Грабли №4. Функции, переопределенные в загружаемом модуле могут быть вызваны до
того как будут вызваны конструкторы из этого модуля. Это может произойти, если
конструкторы других модулей, загруженных в процесс, вызывают одну из
переопределенных функций. Как результат следует избегать глобальных объектов,
требующих вызова конструктора для инициализации.&lt;/p&gt;
&lt;p&gt;Так как загружаемый модуль должен уметь жить в адресном пространстве
произвольного процесса (см. грабли №2), все используемые библиотеки следует
линковать статически. К сожалению, ящик Пандоры открывается от легкого
сквозняка. Компилятор умеет генерировать две версии ассемблерного кода под
x86_64: код который быть загружен по произвольному адресу и код, который должен
быть загружен по заранее определенному адресу. Первая версия генерируется
компилятором если указан ключ &lt;a href=&#34;https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Code-Gen-Options.html#Code-Gen-Options&#34;&gt;&lt;code&gt;-fPIC&lt;/code&gt;&lt;/a&gt; (&lt;a href=&#34;https://en.wikipedia.org/wiki/Position-independent_code&#34;&gt;position-independent code&lt;/a&gt;).
Вторая позволяет получать более компактный код.&lt;/p&gt;
&lt;p&gt;Грабли №5. Загружаемые модули код библиотек в поставке компилятора собраны с
&lt;code&gt;-fPIC&lt;/code&gt;, как и следовало бы ожидать. А вот статические версии тех же библиотек
собраны без &lt;code&gt;-fPIC&lt;/code&gt;. Это тоже можно понять, ведь при статической сборке
получается один бинарный файл, который всегда можно загрузить по выбранному
адресу - он-то загружается первым. Это не работает при статической сборке
загружаемого модуля (&lt;code&gt;.so&lt;/code&gt;). Мы хотим линковать все зависимости статически, но
мы хотим получить позиционно-независимый код, так как модуль будет загружаться
по заранее неизвестному адресу.&lt;/p&gt;
&lt;p&gt;Грабли №6. Не все библиотеки из поставки компилятора можно линковать
статически. В моем конкретном случае не получилось это сделать с libpthread, но
как я понимаю это все зависит от конкретной сборки компилятора.&lt;/p&gt;
&lt;p&gt;Грабли №7. По умолчанию компилятор экспортирует все символы из загружаемого
модуля. Здесь вам не Windows, так сказать. Если статически линковать &lt;code&gt;foobar.so&lt;/code&gt;
с &lt;code&gt;libstdc++&lt;/code&gt;, то все &lt;code&gt;std::&lt;/code&gt; символы будут экспортированы из &lt;code&gt;foobar.so&lt;/code&gt;. При
загрузке через &lt;code&gt;LD_PRELOAD&lt;/code&gt; это приводит к переопределению всех &lt;code&gt;std::&lt;/code&gt; символов в
процессе. Это работает до тех пор, пока все собрано одним компилятором, но
совершенно феерически ломается, стоит только поменять версию компилятора в одном
месте. Одним из симптомов было бросание &lt;code&gt;std::bad_cast&lt;/code&gt; при компиляции
безобидного (и корректного) регулярного выражения.&lt;/p&gt;
&lt;p&gt;Грабли №8. Попытки спрятать лишние символы с помощью &lt;code&gt;-fvisibility=hidden&lt;/code&gt; и
&lt;code&gt;--exclude-libs,ALL&lt;/code&gt; не работают, так как &lt;a href=&#34;https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36022&#34;&gt;&lt;code&gt;libstdc++&lt;/code&gt; принудительно меняет
видимость символов на &lt;code&gt;default&lt;/code&gt; через &lt;code&gt;#pragma&lt;/code&gt;&lt;/a&gt;, что имеет приоритет
выше, чем параметры командной строки.&lt;/p&gt;
&lt;p&gt;В конце концов, загнать Гидру обратно в банку все же получилось, но пришлось ей
в процессе отрубить несколько голов.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Видео посадки марсохода &#34;Персеверанс&#34;</title>
      <link>https://blog.not-a-kernel-guy.com/2021/02/22/perseverance/</link>
      <pubDate>Mon, 22 Feb 2021 20:30:51 -0800</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2021/02/22/perseverance/</guid>
      <description>&lt;p&gt;Видео посадки марсохода &amp;ldquo;Персеверанс&amp;rdquo; (настойчивость) - это что-то неземное:&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/4czjS9h4Fpg&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Необычнее всего выглядит &amp;ldquo;Небесный кран&amp;rdquo; (он же реактивный ранец) на фоне марсианского
неба - что-то в нем есть из классической фантастики. NASA, конечно, молодцы. Это же надо
так наловчится марсоходы засылать.&lt;/p&gt;
&lt;p&gt;Ну и небольшой бонус. Линдсей Стирлинг (Lindsey Stirling) исполняет &amp;ldquo;Артемиду&amp;rdquo; в
Космическом центре Кеннеди:&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/h0oclM1Yw2A&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Артемида - текущее название лунной программы NASA.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Грустное про обратную совместимость</title>
      <link>https://blog.not-a-kernel-guy.com/2021/01/31/py3/</link>
      <pubDate>Sun, 31 Jan 2021 16:14:44 -0800</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2021/01/31/py3/</guid>
      <description>&lt;p&gt;На Hacker News давече &lt;a href=&#34;https://news.ycombinator.com/item?id=25888249&#34;&gt;разгорелась очередная дискуссия про трудности перехода со второго
Питона на третий&lt;/a&gt;. Этот случай, без сомнения, должен войти в учебники как пример
того, как делать ни в коем случае не надо. Очень показательно, что &lt;a href=&#34;https://docs.python.org/3/howto/pyporting.html&#34;&gt;официальное
руководство по переходу&lt;/a&gt; ссылается на две статьи: &lt;a href=&#34;https://ncoghlan-devs-python-notes.readthedocs.io/en/latest/python3/questions_and_answers.html&#34;&gt;Питон 3: вопросы и ответы&lt;/a&gt; и
&lt;a href=&#34;https://snarky.ca/why-python-3-exists/&#34;&gt;Почему Питон 3 существует&lt;/a&gt;. Обе статьи признают, что переход создал множество
проблем, но при этом многословно объясняют почему третий Питон был необходим. Обе статьи
были бы гораздо честнее, если бы авторы просто сказали &amp;ldquo;Простите. Мы ошиблись&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Мое мнение по этому поводу можно свести к двум тезисам:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Питон 3 не предложил &lt;em&gt;ничего&lt;/em&gt;, что оправдало бы обратную несовместимость со вторым
Питоном.&lt;/li&gt;
&lt;li&gt;100% покрытие кода тестами - необходимое условие для того, чтобы безболезненно
переписывать код на Питоне.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Чтобы проиллюстрировать это мнение, я собрал немного статистики по миграции небольшого
проекта на 38 тысяч строк. Проект состоит из коллекции тестов, проверяющих поведение
операционной системы на целевой платформе, и обвязки, которая позволяет эти тесты
запускать на железе. Код проекта покрыт юнит тестами плохо. Юнит тесты занимают всего
около двух с половиной тысяч строк. Это имеет рациональное объяснение - покрывать код
тестов тестами вроде как особого смысла нет. Но на легкость переписывания кода это, само
собой, влияет.&lt;/p&gt;
&lt;p&gt;Основной перевод кода с py2 на py2+py3 начался в июле прошлого года и занял ровно две
недели, 14 пул-реквестов и примерно чуть более 5% измененного кода. Если включить
автоматическое переформатирование кода, то дельта увеличивается до 30% кода. Для
сравнения, в два раза более крупное, похожее по характеру изменение в проекте на С++
(150 тысяч строк кода) заняло 4 дня от начала до конца.&lt;/p&gt;
&lt;p&gt;Здесь кстати есть еще один характерный момент. Переход на третий Питон - это почти
всегда переход на код, совместимый с обоими версиями сразу. Просто потому, что
невозможно перевести сколь-нибудь крупный проект за раз. Но, как мы помним, эти версии
умышленно несовместимы друг с другом. Так что костыли вроде &lt;a href=&#34;https://pypi.org/project/six/&#34;&gt;six&lt;/a&gt; просто необходимы.&lt;/p&gt;
&lt;p&gt;Какие же изменения были сделаны за эти две недели? Да все же тот стандартный список:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Байты и строки.&lt;/li&gt;
&lt;li&gt;Целочисленное деление.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;int&lt;/code&gt; vs &lt;code&gt;long&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;print&lt;/code&gt; стал функцией.&lt;/li&gt;
&lt;li&gt;Некорректные управляющие последовательности в строках.&lt;/li&gt;
&lt;li&gt;Отсутствующий &lt;code&gt;sys.maxint&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Отсутствующий &lt;code&gt;xrange&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;В случае типизированного языка, все эти несовместимости ловятся на этапе компиляции. В
конце концов, компилятор компилирует 100% кода программы (слава богу &lt;a href=&#34;https://en.cppreference.com/w/cpp/language/sfinae&#34;&gt;SFINAE&lt;/a&gt; в
нормальных программах используется более-менее локально). Единственный способ надежно
отловить все ошибки компиляции в Питоне можно только выполнив &lt;em&gt;каждую&lt;/em&gt; строку кода в
программе. Я еще ни разу в жизни не видел ни одного реального программного проекта со
100% покрытием тестами.&lt;/p&gt;
&lt;p&gt;Обидно, что даже самое полезное новшество - раздельные строки и байты не требует ломать
обратную совместимость. Ну совсем. Что нужно было сделать? - дать возможность явно
указать, ожидает ли код байты или строки в новом коде, а старый код обложить
диагностикой, которая ловит ошибки. Добавить специальный режим проверок во время
исполнения, если требуется. Что сделали разработчики Питона? Переименовали &lt;code&gt;str&lt;/code&gt; в
&lt;code&gt;bytes&lt;/code&gt;, а &lt;code&gt;unicode&lt;/code&gt; в &lt;code&gt;str&lt;/code&gt;. Чем сломали ожидания огромного массива существующего кода.&lt;/p&gt;
&lt;p&gt;Однако авторам этого показалось мало и они добавили еще кучу тривиальных, и совсем
ненужных несовместимостей. К примеру убрали &lt;code&gt;iteritems()&lt;/code&gt; или убрали оператор &lt;code&gt;print&lt;/code&gt;.
Что мешало оставить первый и позволить второму быть и оператором и функцией - это выше
моего понимания.&lt;/p&gt;
&lt;p&gt;Но если вы думаете, что за две недели эпопея закончилась, вы сильно ошибаетесь. Это был
только первый тикет в баг-трекере. Спустя полгода их заведено уже 15. Заслано 33
пул-реквеста. Крайний и видимо не последний баг, вызванный переходом, был найден неделю
назад. Как минимум три тикета еще предстоит исправить. Вот такие дела.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Открытые позиции в моей команде</title>
      <link>https://blog.not-a-kernel-guy.com/2020/12/12/%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5-%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%B8-%D0%B2-%D0%BC%D0%BE%D0%B5%D0%B9-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B5/</link>
      <pubDate>Sat, 12 Dec 2020 15:46:35 -0800</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2020/12/12/%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5-%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%B8-%D0%B2-%D0%BC%D0%BE%D0%B5%D0%B9-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B5/</guid>
      <description>&lt;p&gt;Пользуясь наплывом читателей по случаю &lt;a href=&#34;https://blog.not-a-kernel-guy.com/2020/12/09/sn8/&#34;&gt;красивого взрыва SN8&lt;/a&gt;, прорекламирую открытые
позиции в моей команде:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://boards.greenhouse.io/spacex/jobs/4994016002?gh_jid=4994016002&#34;&gt;Software Engineer (Embedded Linux Software)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://boards.greenhouse.io/spacex/jobs/4787115002?gh_jid=4787115002&#34;&gt;Senior Software Engineer (Embedded Linux Software)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;В двух словах мы ищем специалистов по разработке встраиваемых систем, ядру Linux, и
систем реального времени.&lt;/p&gt;
&lt;p&gt;Сразу скажу, что рассматриваются только жители США. Виза, за исключением уникальных
случаев, не спонсируется. Почему так можно прочитать &lt;a href=&#34;https://blog.not-a-kernel-guy.com/2020/05/24/job-at-spacex/&#34;&gt;здесь&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Понятное дело, что рекламировать позицию в США в блоге на русском не очень логично, но с
другой стороны, почему бы и нет? Глядишь у кого-нибудь знакомые заинтересуются?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Испытательный полет SN8 на 12.5 км</title>
      <link>https://blog.not-a-kernel-guy.com/2020/12/09/sn8/</link>
      <pubDate>Wed, 09 Dec 2020 19:51:49 -0800</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2020/12/09/sn8/</guid>
      <description>&lt;p&gt;Сегодня был отличный день. Испытательный полет SN8 на 12.5 км прошел гораздо лучше, чем
я ожидал. Да и шоу получилось просто отменное. В этом полете испытывалось много нового:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Полет на трех движках. Раптор еще не летал в такой конфигурации. После F9 это кажется
тривиальной вещью, но одни только акустические нагрузки чего стоят.&lt;/li&gt;
&lt;li&gt;Выключение движков в полете, суммарный вектор тяги которых не соосен с продольной
осью ракеты.&lt;/li&gt;
&lt;li&gt;Переворот на пике траектории.&lt;/li&gt;
&lt;li&gt;Планирование &amp;ldquo;на пузе&amp;rdquo;. Насколько я понимаю, этого в мире еще никто не пробовал, тем
более с ракетой такой размерности. Я ожидал, что неприятности начнутся именно на этом
этапе. Тем более удивительно, что планирование прошло как по маслу.&lt;/li&gt;
&lt;li&gt;Включение двигателей для посадки &amp;ldquo;лежа на боку&amp;rdquo;. Топливо в баках при этом
скапливается на боку ракеты - его туда толкает ускорение от торможения в атмосфере.
При посадке первой ступени F9 топливо естественным образом стекает в топливоприемник
(не уверен на счет терминологии).&lt;/li&gt;
&lt;li&gt;Переворот в последнюю секунду перед посадкой. Неудача на этом этапе была второй
наиболее вероятной причиной неудачи по моим предположениям до теста.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Мелкие неприятности с низкой тягой при посадке и, как следствие, красивым взрывом
на посадочной площадке - это совершенно не проблема. Мы это уже порешали с при посадке
F9, порешаем и здесь.&lt;/p&gt;
&lt;p&gt;А пока - наслаждайтесь красивым зрелищем (T-0 в 1:48:12):&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/ap-BkkrRg-o&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;P.S. А вот еще шикарный вид снизу на маневр переворота при посадке:&lt;/p&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;Starship landing flip maneuver &lt;a href=&#34;https://t.co/QuD9HwZ9CX&#34;&gt;pic.twitter.com/QuD9HwZ9CX&lt;/a&gt;&lt;/p&gt;&amp;mdash; SpaceX (@SpaceX) &lt;a href=&#34;https://twitter.com/SpaceX/status/1336849897987796992?ref_src=twsrc%5Etfw&#34;&gt;December 10, 2020&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;</description>
    </item>
    
    <item>
      <title>Фонтанный код</title>
      <link>https://blog.not-a-kernel-guy.com/2020/09/06/fountain-codes/</link>
      <pubDate>Sun, 06 Sep 2020 15:23:17 -0700</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2020/09/06/fountain-codes/</guid>
      <description>&lt;p&gt;Недавно совершенно случайно узнал про &lt;a href=&#34;https://en.wikipedia.org/wiki/Fountain_code&#34;&gt;фонтанный код&lt;/a&gt; и поразился насколько
элегантно работает этот алгоритм. Этот код позволяет надежно передавать данные
по каналу с потерями без обратной связи и с минимальными накладными расходами.
Более того передатчик и приемник не обязаны синхронизировать начало и конец
передачи данных. Фонтанный код позволяет передатчику генерировать бесконечный
поток пакетов, кодирующих исходное сообщение, а приемник может начать слушать в
любой момент. Все что требуется - это принять минимально необходимое для
декодирования количество пакетов. &lt;a href=&#34;https://en.wikipedia.org/wiki/Raptor_code&#34;&gt;Raptor code&lt;/a&gt;, - одна из наиболее
практичных реализаций, требует всего лишь передать всего 0.2% дополнительных
пакетов для успешного декодирования с вероятностью 0.999999. При этом
вероятность успешного декодирования стремительно приближается к единице с каждым
дополнительным пакетом.&lt;/p&gt;
&lt;p&gt;Зачем это нужно когда уже есть протоколы надежной передачи по двухстороннему
каналу, скажем тот же TCP/IP? Оказывается существует ситуации, когда организация
обратного канала связи требует изобретения машины времени. Когда нам нужно
восстановить данные со сбойного сектора на жестком диске, мы не можем послать
“запрос на повторную передачу” в прошлое - в то время, когда сектор нормально
читался. Все что мы можем сделать - это записать избыточные данные в другой
сектор или на другой диск заранее.&lt;/p&gt;
&lt;p&gt;Бывает и так, что организация обратной связи осложнена практическими
ограничениями. Обратный канал связи может быть слишком дорог и/или слишком
медленен. Задержка передачи сигнала с Земли на космический аппарат и обратно
может составлять от секунд (орбита Луны) до часов (Вояждеры, Пионеры, Кассини,
Новые горизонты, и т.д.) и требует многометровых параболических антенн. Если
посчитать &lt;a href=&#34;http://bradhedlund.com/2008/12/19/how-to-calculate-tcp-throughput-for-long-distance-links/&#34;&gt;пропускную способность TCP/IP&lt;/a&gt; для связи с Луной, то получится,
что с настройками по-умолчанию (и вне зависимости от реальной ширины канала)
скорость передачи данных будет не более 175 Kbps.&lt;/p&gt;
&lt;p&gt;Вообще сценариев, когда помехоустойчивое кодирование выгоднее запросов на
повторную передачу - масса. Передача данных по радиоканалу, высокоскоростная
передача данных, высокочастотная торговля на бирже, синхронизация часов по сети,
системы глобального позиционирования и т.д. Во многих из них фонтанный код может
быть хорошим выбором.&lt;/p&gt;
&lt;p&gt;Алгоритм работы фонтанного кода на удивление прост. Исходное сообщение
разбивается на блоки одинакового размера пронумерованные от 1 до k. Каждый
исходящий пакет генерируется так:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Передатчик выбирает степень связности пакета d в диапазоне от 1 до k.&lt;/li&gt;
&lt;li&gt;Передатчик выбирает d случайных блоков из исходного сообщения и складывает их
по модулю 2 (xor).&lt;/li&gt;
&lt;li&gt;Результат сложения вместе информацией об исходных блоках посылается
приемнику.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Процедура декодирования не намного сложнее. Для каждого входящего пакета
выполняются следующие шаги:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Пакет помещается в очередь еще не декодированных пакетов вместе со списком
исходных блоков.&lt;/li&gt;
&lt;li&gt;Каждый уже декодированный исходный блок складывается по модулю 2 с пакетом и
удаляется из списка.&lt;/li&gt;
&lt;li&gt;Если в списке исходных блоков остался только один блок, то содержимое пакета
и есть исходный блок. Блок помечается как декодированный. Пакет удаляется из
очереди.&lt;/li&gt;
&lt;li&gt;Блок, декодированный на предыдущем шаге, складывается со всеми пакетами из
очереди, ссылающимися на него. Это, в свою очередь, может привести к
декодированию других пакетов и т.д.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Процесс декодирования легче проследить на конкретном примере. Предположим
приемник получил пять однобайтовых пакетов. На рисунке снизу полученные пакеты
показаны слева; исходные блоки, которые нужно восстановить, - справа. Четвертый
пакет содержит только второй исходный блок, что позволяет сразу его
декодировать:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.not-a-kernel-guy.com/2020/09/fountain-step1.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Декодированный исходный блок складывается с первом пакетом по модулю 2 (2^3=1),
так как они связаны:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.not-a-kernel-guy.com/2020/09/fountain-step2.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Теперь первый исходный блок может быть также декодирован:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.not-a-kernel-guy.com/2020/09/fountain-step3.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Это, в свою очередь позволяет декодировать исходные блоки 3 и 4 (1^5=4, 1^2=3):&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.not-a-kernel-guy.com/2020/09/fountain-step4.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;И, наконец, последний исходный блок тоже может быть декодирован:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.not-a-kernel-guy.com/2020/09/fountain-step5.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Заметьте, что передатчик и приемник могут передавать и получать пакеты в любом
порядке и приемнику совершенно не требуется собрать непрерывную
последовательность пакетов. Также, и это не очевидно на первый взгляд, передача
информации о связях между пакетами и исходными блоками не требует заметных
накладных расходов. Передатчик и приемник могут просто использовать заранее
известную псевдослучайную последовательность чисел и передавать номер пакета в
этой последовательности.&lt;/p&gt;
&lt;p&gt;Я рекомендую прочитать
&lt;a href=&#34;https://docs.switzernet.com/people/emin-gabrielyan/060112-capillary-references/ref/MacKay05.pdf&#34;&gt;подробный анализ нескольких разновидностей фонтанного кода&lt;/a&gt; за авторством
Дэвида Макая. Легко заметить, что способность фонтанного кода восстанавливать
потерянные пакеты зависит от того, как выбирается степень связности d для
каждого пакета. С одной стороны, для того чтобы начать декодирование приемник
должен получить хотя бы один пакет со степенью связности 1. С другой стороны,
пакеты с большими степенями связности позволяют приемнику восстанавливать данные
из потерянных пакетов.&lt;/p&gt;
&lt;p&gt;В своей работе Дэвид начинает разбор с простой модели, которая просто генерирует
K случайных бит для каждого пакета и добавляет исходный блок i к пакету в
случае, если бит с номером i установлен в единицу. Такая модель обладает
довольно неплохими способностями к восстановлению потерянных данных, однако она
требует значительных вычислительных затрат при больших K (вычислительная
сложность алгоритма - O(K^3)).&lt;/p&gt;
&lt;p&gt;Далее автор переходит к разбору &lt;a href=&#34;https://en.wikipedia.org/wiki/Luby_transform_code&#34;&gt;LT code&lt;/a&gt;, который уменьшает количество
связей между пакетами и исходными блоками, тем самым снижая вычислительную
сложность алгоритма до O(K log K). Эта схема базируется на наблюдении, что в
идеальном случае, на каждой итерации у приемника будет только один пакет со
степенью связности 1 и декодирование очередного исходного блока будет приводить
к появлению очередного пакета со степенью связности 1.&lt;/p&gt;
&lt;p&gt;Следующая разновидность фонтанного кода, - &lt;a href=&#34;https://en.wikipedia.org/wiki/Raptor_code&#34;&gt;Raptor code&lt;/a&gt;, улучшает
вычислительную сложность до O(K). Иными словами, вычислительная сложность это
алгоритма растет от размена исходного сообщения точно также, как растет
вычислительная сложность &lt;code&gt;memcpy()&lt;/code&gt;! Raptor code использует LT code со средней
степенью связности около 3 (вместо log K). Это означает, что приемник увидит
много пакетов с малой степенью связности, но некоторые исходные блоки не будут
связаны ни с одним пакетом и, соответственно, не смогут быть восстановлены.
Raptor code красиво обходит это ограничение с помощью двухступенчатого
кодирования: сначала исходные данные кодируются
&lt;a href=&#34;https://en.wikipedia.org/wiki/Low-density_parity-check_code&#34;&gt;кодом с малой плотностью проверок на чётность (LDPC)&lt;/a&gt;, а затем слабым LT
кодом. Параметры LDPC подбираются так, чтобы он мог восстановить данные, не
восстановленные LT кодом. Получается, что Raptor code объединяет способность
LDPC гарантированно восстанавливать данные (с определенным уровнем потерь) со
способностью LT кода восстанавливать данные при любом уровне потерь.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://tools.ietf.org/html/rfc5053&#34;&gt;Raptor code&lt;/a&gt; и &lt;a href=&#34;https://tools.ietf.org/html/rfc6330&#34;&gt;RaptorQ code&lt;/a&gt; стандартизированы &lt;a href=&#34;https://www.ietf.org/&#34;&gt;Инженерным советом
Интернета&lt;/a&gt; и способны крайне эффективно восстанавливать данные. Например
RaptorQ гарантирует следующую вероятность доставки исходного сообщения:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Более 0.99 после получения K пакетов&lt;/li&gt;
&lt;li&gt;Более 0.9999 после получения K+1 пакетов&lt;/li&gt;
&lt;li&gt;Более 0.999999 после получения K+2 пакетов&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Правами на Raptor code и RaptorQ code обладает Qualcomm, Inc., однако согласно
&lt;a href=&#34;https://datatracker.ietf.org/ipr/1957/&#34;&gt;IPR 1957&lt;/a&gt; и &lt;a href=&#34;https://datatracker.ietf.org/ipr/2554/&#34;&gt;IPR 2554&lt;/a&gt; Qualcomm, Inc. обязуется либо выдавать лицензию
либо не предъявлять претензий (в зависимости от того, где используется
лицензируемый протокол).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Пепелац</title>
      <link>https://blog.not-a-kernel-guy.com/2020/08/04/butterfly/</link>
      <pubDate>Tue, 04 Aug 2020 22:06:55 -0700</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2020/08/04/butterfly/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;В Бока Чике сегодня летало. Громко, основательно, и очень сюрреалистично. Моих
литературных талантов не хватает, чтобы описать это событие по достоинству. Стальная
бочка высотой в десятиэтажный дом, с карикатурными мультяшными ножками, вальяжно
отрывается от стартового стола, походу разнося его в щепки, и возносится в небо с
грацией троллейбуса&amp;hellip; Нет, не могу. Смотрите сами:&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/s1HA9LlFNM0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Вместе с тем этот полет - это очень серьезная веха в разработке корабля. Причем важен
даже не сам полет (хотя и он тоже), но все что происходило при подготовке к нему. Все
переносы, многочисленные попытки и остановки обратного отсчета в последнюю секунду. Это
можно сравнить с периодом времени, когда программа уже компилируется, но еще не
работает.&lt;/p&gt;
&lt;p&gt;Другой ракурс:&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/EXm76nZG-so&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Вообще интересно, насколько круто снимают &amp;ldquo;через забор&amp;rdquo; любители космоса. Прикиньте, что
эти люди потратили свой отпуск на то, чтобы просидеть у болота непонятно сколько дней
на жаре в ожидании успешного теста; приволокли кучу дальнобойных камер; раздобыли
шустрый интернет в 40 минутах езды от ближайшего приличного города; и выложили отснятый
материал в интернет.&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/ugVZ41USN_0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Flight Software AMA</title>
      <link>https://blog.not-a-kernel-guy.com/2020/06/05/flight-software-ama/</link>
      <pubDate>Fri, 05 Jun 2020 20:47:13 -0700</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2020/06/05/flight-software-ama/</guid>
      <description>&lt;p&gt;Команда Flight Software будет &lt;a href=&#34;https://www.reddit.com/r/spacex/comments/gxb7j1/we_are_the_spacex_software_team_ask_us_anything/&#34;&gt;отвечать на вопросы про то, как SpaceX разрабатывает
программное обеспечение для Crew Dragon на reddit.com&lt;/a&gt; в субботу 6 июня 2020 с 12:00
до 13:30 по тихоокеанскому времени (в субботу с 22:00 до 23:30 по киевскому времени).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Армянское радио</title>
      <link>https://blog.not-a-kernel-guy.com/2020/06/01/armyanskoe-radio/</link>
      <pubDate>Mon, 01 Jun 2020 18:46:46 -0700</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2020/06/01/armyanskoe-radio/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://blog.not-a-kernel-guy.com/2020/05/30/trampoline/&#34;&gt;Успешный запуск пилотируемого Дракона к Международной космической станции&lt;/a&gt;
заслуженно вызвал повышенное внимание со стороны как средств массовой информации, так и
простых смертных. Как-никак такие события случаются нечасто. Повышенное внимание, хотя
и менее заслуженное, не обошло стороной и этот блог. И теперь мой почтовый ящик лопается
от поздравлений и запросов на интервью. Что гораздо хуже, известие о том, что в SpaceX
работает украинец вызвало нешуточный ажиотаж в Facebook и волну слухов один другого
забавнее. Позвольте мне прокомментировать моменты, которые, по всей видимости, вызвали
наибольший интерес.&lt;/p&gt;
&lt;p&gt;Но перед тем как начать, позвольте от всего сердца поблагодарить за все присланные
поздравления, пожелания и высказанную поддержку. Поверьте, и моим коллегам и мне очень
приятно знать, что наша работа высоко оценивается и вызывает живой интерес. Спасибо
огромное и извините, что далеко не всегда могу удовлетворить ваше любопытство.&lt;/p&gt;
&lt;p&gt;Ну, поехали. Честно говоря, никак не думал, что подобное нужно отдельно уточнять, но
оказывается нужно. Нет, я не &amp;ldquo;пишу всё программное обеспечение которое отвечает за
полёт Crew Dragon&amp;rdquo;. Программное обеспечение, обеспечивающие полет Crew Dragon
создавалось не одной сотней людей в течении многих лет. Помимо всего прочего, это
программное обеспечение включает в себя версию Linux. Я специально проверял - я
совершенно точно не писал Linux. Там какой-то финский паренёк отметился.&lt;/p&gt;
&lt;p&gt;Самое смешное, что я и разработке ПО &lt;a href=&#34;https://en.wikipedia.org/wiki/Dragon_2&#34;&gt;Dragon&lt;/a&gt; никогда отношения не имел. Раньше я
писал софт для &lt;a href=&#34;https://en.wikipedia.org/wiki/Falcon_9&#34;&gt;Falcon 9&lt;/a&gt; и &lt;a href=&#34;https://en.wikipedia.org/wiki/Falcon_Heavy&#34;&gt;Falcon Heavy&lt;/a&gt;, а теперь - для &lt;a href=&#34;https://en.wikipedia.org/wiki/SpaceX_Starship&#34;&gt;Starship&lt;/a&gt;. Само
собой, так как софт для всех четырех собирается из одной кодовой базы, то часть моего
кода используется при полете Dragon.&lt;/p&gt;
&lt;p&gt;Идем дальше. Нет, моя должность не называется &amp;ldquo;главный разработчик&amp;rdquo;. Главный
инженер (Chief Designer) у нас - Илон Маск собственной персоной. &amp;ldquo;Sr. Software
Engineer&amp;rdquo; - это всего лишь &amp;ldquo;разработчик обыкновенный, просто опытный&amp;rdquo;. Эта должность
не предполагает руководства людьми. Для этого есть менеджеры и руководители групп
(скажем Lead Software Engineer) :-)&lt;/p&gt;
&lt;p&gt;Я действительно отвечал за первую удачную посадку первой ступени Falcon 9 и запуск
Falcon Heavy. Правда я на 98% уверен, что это факт интерпретируется совершенно не
совпадающим с реальностью способом. В SpaceX активно используется понятие &amp;ldquo;Responsible
Engineer&amp;rdquo; (&amp;ldquo;ответственный инженер&amp;rdquo;, &amp;ldquo;RE&amp;rdquo;). Ответственный инженер координирует
взаимодействие разных групп в той или иной области. Например, инженер отвечающий за
автоматическую систему прерывания полета отвечат за то, чтобы Range получил все данные,
нужные для сертификации, чтобы полетный правила прошли определенный набор тестов, чтобы
чуваки из Flight Software выбрали правильный протокол для навигационных данных, чтобы
операторы добавили процедуру включения и проверки в нужное место пусковой
последовательности. Задача ответственного инженера состоит не в том, чтобы сделать всю
работу самому, а в том, чтобы вся работа (в одной определенной области) была сделана
теми, кто должен её сделать. Баз такого ответственного инженера легко забыть как-нибудь
важную, но малозаметную деталь. Например, запросто можно подключить только один конец
кабеля или забыть выполнить какой-то важный тест.&lt;/p&gt;
&lt;p&gt;На каждый запуск назначается ответственный инженер от каждый группы, обеспечивающий
запуск. Я был инженером, отвечающим за запуск F9-21 (первая успешная посадка), FH-1
(первый запуск Falcon Heavy) и нескольких других запусков от группы Flight Software.
Помимо прочего, я отвечал за то, чтобы полетный софт, загруженный на ракету, включал в
себя все запланированные изменения и прошел все необходимые тесты. Большинство людей,
которых вы видите в центре управления полетом, - ответственные инженеры назначенные от
разных групп.&lt;/p&gt;
&lt;p&gt;Далее, я обратил внимание, что у многих подгорело на счет моей биографии. Я веду этот
блог по-русски, я родился и вырос в Украине, у меня русская фамилия, я живу в США. Если
я не ошибаюсь, я сумел обидеть каждым из этих простых фактов хотя бы одного человека.
Хорошо, что я хотя бы не рыжий. :-)&lt;/p&gt;
&lt;p&gt;Почему-то людей зацепила вот эта фраза:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Я стараюсь, по возможности, сторонится политики. Главным образом из-за крайне
низкого КПД подобных споров. А уж после событий последних лет – так и
подавно. Так что, пожалуйста, не разводите политику в комментариях –
буду банить нещадно, а самое главное – предвзято. Ну, я предупредил. :-)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Нет, я понимаю, что в 2014 году был аннексирован Крым и началась война. Но, на
минуточку, этот блог существует с 2006 года, а эта фраза - с 2007, если я не ошибаюсь.
Я даже нашел вот такой комментарий датированный январем 2007 года:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Обычно я стараюсь избегать “священных войн”. По уровню полезности рассуждения на темы
вроде “Windows против *nix” или “Microsoft против Open Source Community” я
приравниваю к спорам про политику. И те и другие одинаково быстро скатываются в
эмоции, где оппоненты больше заинтересованы в уничтожении друг друга, чем в выяснении
истины.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Этот блог не исключение из этого правила. Все подобные темы я стараюсь рассматривать
только с технической точки зрения: как это сделано, почему, зачем и что это даёт
пользователю. Темы, которые не удаётся свести к сугубо технической части, я обсуждать
не буду, уж извините. И уж тем более я не хочу копаться в грязном белье: суды,
нечестная конкуренция и т.п.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Как видите, и здесь идет речь о неприятии политики в этом блоге. Так что, господа,
полегче со своими проекциями.&lt;/p&gt;
&lt;p&gt;Закончу на положительной ноте. Один из частых вопросов - а много ли других выходцев из
стран бывшего Союза заботает в SpaceX. Да дофига. Есть много украинцев, есть много
россиян, есть масса людей из других стран. Как и в любой большой американской компании.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Батут</title>
      <link>https://blog.not-a-kernel-guy.com/2020/05/30/trampoline/</link>
      <pubDate>Sat, 30 May 2020 12:45:32 -0700</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2020/05/30/trampoline/</guid>
      <description>&lt;p&gt;Боб Бенкен и Даг Хёрли успешно вышли на орбиту!&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/bIZsnKGV8TE&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Вы не поверите скольких усилий это стоило. Это гораздо сложнее, чем может показаться.&lt;/p&gt;
&lt;p&gt;Следующая остановка - Starship? :-)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>SN4 RIP</title>
      <link>https://blog.not-a-kernel-guy.com/2020/05/29/sn4/</link>
      <pubDate>Fri, 29 May 2020 23:01:39 -0700</pubDate>
      
      <guid>https://blog.not-a-kernel-guy.com/2020/05/29/sn4/</guid>
      <description>&lt;p&gt;Не могу не поделится. Живой комментарий происходящего на видео совершенно бесподобен.
Как раз в нужный момент и не в бровь, а в глаз. К сожалению, при переводе теряется вся
прелесть, так что если у кого с английским не очень - извиняйте:&lt;/p&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;RIP Starship SN4 😭&lt;a href=&#34;https://t.co/klPMtZHxjW&#34;&gt;https://t.co/klPMtZHxjW&lt;/a&gt; &lt;a href=&#34;https://t.co/hrrElBXmSC&#34;&gt;pic.twitter.com/hrrElBXmSC&lt;/a&gt;&lt;/p&gt;&amp;mdash; Chris Bergin - NSF (@NASASpaceflight) &lt;a href=&#34;https://twitter.com/NASASpaceflight/status/1266442087848960000?ref_src=twsrc%5Etfw&#34;&gt;May 29, 2020&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;


&lt;p&gt;Немного контекста к происходящему на видео. Где-то через две минуты после очередного
(кажется третьего) огневого испытания прототипа Starship с серийным номером 4, &amp;ldquo;что-то
пошло не так&amp;rdquo; самым захватывающим образом.&lt;/p&gt;
&lt;p&gt;На полном видео ниже включение двигателя в 1:22:33, огненный шар - в 1:24:48.&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/7YaFsUWgN3s&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;</description>
    </item>
    
  </channel>
</rss>