Роскосмос пару дней назад опубликовал отчёт о том, почему упала "Луна-25". Там конечно канцелярит, но можно примерно понять, что двигатель коррекции получил неверные данные от акселерометра:
из-за возможного попадания в один массив данных команд с различными приоритетами их исполнения прибором
Это очень похоже на программную ошибку, а это моя сфера, и я решил над ситуацией поразмыслить.
Хейтеры сразу стали строчить комментарии в стиле "Ололо, наняли каких-то идиотов, которые простейшие тесты не провели". Тут обычно справедливо вспоминают аварию с европейской ракетой Ариан-5 в 1996 году. Там буквально из-за пары строчек кода в результате неправильного приведения числовых типов ракета за 7 млрд баксов развалилась на куски в воздухе. Бывает.
Что касается Роскосмоса, при всей его сомнительной репутации, объяснение "Дураки не провели тесты" звучит лично для меня неправдоподобно. На мой личный взгляд возможны два варианта:
1. Если в описании ошибки слово "приоритет" обозначает какой-то признак внутри объекта команды, значит, на входе в приёмный модуль эти команды не были отфильтрованы. Выглядит как грубая ошибка, целый логический блок упущен. Вряд ли этот блок вообще не написан, скорее всего он не выполнился. Такое бывает, если в тестовой среде есть какое-то условие, которого нет в рабочей, и именно это условие отвечает за выполнение участка кода.
Сталкивался с таким миллион раз. Самое дикое из последнего: код парсит эксель-таблицу с числами. Разработчик написал, запустил проверил, прогнал тесты, всё ок. Отправляем в прод — все числа будто бы рандомно меняются на другие. Запускаем снова — у всех разработчиков функционирует нормально, а в проде на сервере нет. Таблица одна и та же. Можете подумать, почему так. Ответ: у разработчиков стоит русская локаль и десятичный разделитесь это запятая, а на проде в докере точка. При парсинге на проде запятая уже интерпретируется как разделитель тысячных разрядов.
2. Куда вероятнее, что слово "приоритет" в описании ошибки обозначает время, а, значит, список команд просто не был отсортирован, и в обработчик уже после актуальных значений попали какие-нибудь начальные нулевые данные, сбившие логику. По косвенному описанию проблемы очень похоже именно на это. Значит, на тестах всегда порядок возникновения команд соответствовал порядку их прихода, а в реальности перестал соответствовать. Вообще, работать с железом очень сложно. Какую-нибудь схемку заглючило от холода, она задержала ответ от датчика на миллисекунду, и всё. Никто не знал, что такая проблема возможна, пока она не возникла.
Мне рассказывали о таком случае: юзер логинится на сайт и иногда логин проходит, а иногда нет. Логин и пароль те же самые. Просто в случайные моменты времени ему возвращают токен авторизации, а в другие моменты времени ошибку 403. Никакой закономерности нет вообще. Нет зависимости от времени суток и даты. Сервер точно работает стабильно и не падает все 100% времени. Почему так может быть? Ответ: у сервиса авторизации два инстанса, перед которыми балансировщик нагрузки. В одном инстансе данные для авторизации есть, в другом нет. Балансировщик при примерно одинаковой нагрузке включает просто случайный выбор между ними.
В общем, программисты иногда допускают такие косяки, что какая-то мелочь может привести к серьёзной аварии. Это я вам говорю как программист, который пишет для атомных станций :)
#dev
⚡️swap.coffee: Major UI Widget Kit Update
#update#documentation
swap.coffee has introduced a significant update to its UI Widget Kit. The update features a new design, supports MEV Protect, Limit Orders, DCA, and much more. Updated documentation is now available for users at @swapcoffee_dev_chat.
Source: link
@tonlines
Cekura Secures $500K Funding
Cekura has completed a funding round of $500K on December 4, 2024. The company specializes in browser agents that ensure product documentation remains current.
#Cekura#Funding#Documentation#Tech#BrowserAgents#Startup#Investment #2024 #Innovation#Business
Documentation News:
In Moscow, two men who failed to register for military service were stripped of their citizenship
This was reported on the Telegram channel by the official representative of the Russian Ministry of Internal Affairs Irina Volk.
Volk recalled that, in accordance with Russian law, every man with acquired citizenship must register for military service within two weeks. Violators face punishment.
Our advise to members:
1. Comply with local laws. Register for military service if you are of draft age and have acquired citizenship.
2. Similarly, if you are of draft age and have no plans to register for military service, then you should consider not applying for citizenship.
Like the popular saying goes, you can't eat your cake and have it.
https://t.me/nido_russia/1827
#laws#naturaliation#documentation#passport#citizenship
Source: Life(.ru)
#html#documentation#hacktoberfest#hass#hassio#home_assistant#jekyll
You can set up and contribute to the Home Assistant website easily by following the developer documentation, which explains how to edit and preview the site locally using simple commands. This helps you see your changes live on your computer before sharing them. There are also tools to speed up website updates by temporarily hiding blog posts you’re not working on, making the process faster. This setup benefits you by making it straightforward to improve the site, test changes quickly, and manage content efficiently without delays. It’s designed to support smooth collaboration and faster website maintenance.
https://github.com/home-assistant/home-assistant.io
#python#documentation#gotchas#interview_questions#pitfalls#python#python_interview_questions#snippets#wats#wtf
Python is a high-level, easy-to-read programming language widely used in many fields like web development, data science, and AI. The "What the f*ck Python?" project helps you understand tricky, surprising Python behaviors through clear examples and explanations. It reveals lesser-known features and common pitfalls, making it easier to write better code and debug problems. By exploring these examples, you can deepen your knowledge of Python’s internals, improve your coding skills, and avoid common mistakes, which benefits both beginners and experienced programmers alike[3].
https://github.com/satwikkansal/wtfpython
#ruby#api_documentation#app#devdocs#developer_tools#docs#documentation#documentation_tool#hacktoberfest#offline#pwa
DevDocs is a free, fast, and easy-to-use web app that lets you quickly search and browse official API documentation for many programming languages and tools all in one place. It works offline, has a clean interface, supports keyboard shortcuts, dark mode, and mobile use. You can access over 100 documentations like HTML, CSS, JavaScript, and more without switching tabs or searching Google repeatedly. It saves time by providing instant search results and keeps everything organized, making coding and learning more efficient and enjoyable. You can use it online or run it locally with Docker for even faster access[1][2][3][5].
https://github.com/freeCodeCamp/devdocs
— LibreCellular 21.04 documentation –https://librecellular.org/
The LibreCellular project aims to make it easier to create #4G cellular #networks with open source software and low cost software-defined radio (#SDR) hardware. Seeking to achieve this via validated hardware and software configurations that are subjected to rigorous testing, together with additional tooling and #documentation for repeatable deployment.
LibreCellular will build on the work of numerous existing open source software and hardware projects, related to both the #cellular platform itself and associated test #infrastructure. Where necessary additional components will be developed, with any software source code and #hardware designs published under #opensource licences. The focus is very much on integration, testing, packaging and documentation, reusing and building upon existing solutions..
#LibreCellular#CellulaireLibre
#python#ai#ai_agents#ai_coding#claude_code_plugin#claude_code_plugins#claude_code_plugins_marketplace#claude_marketplace#claude_plugin#claude_skills#docs#documentation#mcp#mcp_server#postgres#postgresql#skills
pg-aiguide helps AI coding tools create better PostgreSQL code with semantic search of official docs, best-practice skills for schemas/indexes, and extension info like TimescaleDB. Install it free as a public MCP server or Claude plugin in tools like Cursor/VS Code for one-click setup. It fixes AI's weak spots—outdated code, missing constraints (4x more), indexes (55% more), and modern PG17 features—producing robust, fast, maintainable schemas that save you debugging time and production fixes.
https://github.com/timescale/pg-aiguide
#python#blocknotejs#collaborative#django#documentation#g2g#government#knowledge#knowledge_base#mit#mit_license#opensource#reactjs#realtime_collaboration#self_hosted#wiki#yjs
Docs is a collaborative online text editor that helps you and your team write, edit, and organize documents together in real time, even offline. It offers easy formatting, AI tools like summarizing and rephrasing, and secure sharing with controlled access. You can export documents in various formats and create structured knowledge with subpages. Docs is open source, easy to self-host, and used by public organizations, ensuring your data stays secure and private. This tool saves time, improves teamwork, and turns your notes into organized knowledge you can access anytime. It’s great for teams wanting efficient, secure, and collaborative document editing.
https://github.com/suitenumerique/docs