Роскосмос пару дней назад опубликовал отчёт о том, почему упала "Луна-25". Там конечно канцелярит, но можно примерно понять, что двигатель коррекции получил неверные данные от акселерометра:
из-за возможного попадания в один массив данных команд с различными приоритетами их исполнения прибором
Это очень похоже на программную ошибку, а это моя сфера, и я решил над ситуацией поразмыслить.
Хейтеры сразу стали строчить комментарии в стиле "Ололо, наняли каких-то идиотов, которые простейшие тесты не провели". Тут обычно справедливо вспоминают аварию с европейской ракетой Ариан-5 в 1996 году. Там буквально из-за пары строчек кода в результате неправильного приведения числовых типов ракета за 7 млрд баксов развалилась на куски в воздухе. Бывает.
Что касается Роскосмоса, при всей его сомнительной репутации, объяснение "Дураки не провели тесты" звучит лично для меня неправдоподобно. На мой личный взгляд возможны два варианта:
1. Если в описании ошибки слово "приоритет" обозначает какой-то признак внутри объекта команды, значит, на входе в приёмный модуль эти команды не были отфильтрованы. Выглядит как грубая ошибка, целый логический блок упущен. Вряд ли этот блок вообще не написан, скорее всего он не выполнился. Такое бывает, если в тестовой среде есть какое-то условие, которого нет в рабочей, и именно это условие отвечает за выполнение участка кода.
Сталкивался с таким миллион раз. Самое дикое из последнего: код парсит эксель-таблицу с числами. Разработчик написал, запустил проверил, прогнал тесты, всё ок. Отправляем в прод — все числа будто бы рандомно меняются на другие. Запускаем снова — у всех разработчиков функционирует нормально, а в проде на сервере нет. Таблица одна и та же. Можете подумать, почему так. Ответ: у разработчиков стоит русская локаль и десятичный разделитесь это запятая, а на проде в докере точка. При парсинге на проде запятая уже интерпретируется как разделитель тысячных разрядов.
2. Куда вероятнее, что слово "приоритет" в описании ошибки обозначает время, а, значит, список команд просто не был отсортирован, и в обработчик уже после актуальных значений попали какие-нибудь начальные нулевые данные, сбившие логику. По косвенному описанию проблемы очень похоже именно на это. Значит, на тестах всегда порядок возникновения команд соответствовал порядку их прихода, а в реальности перестал соответствовать. Вообще, работать с железом очень сложно. Какую-нибудь схемку заглючило от холода, она задержала ответ от датчика на миллисекунду, и всё. Никто не знал, что такая проблема возможна, пока она не возникла.
Мне рассказывали о таком случае: юзер логинится на сайт и иногда логин проходит, а иногда нет. Логин и пароль те же самые. Просто в случайные моменты времени ему возвращают токен авторизации, а в другие моменты времени ошибку 403. Никакой закономерности нет вообще. Нет зависимости от времени суток и даты. Сервер точно работает стабильно и не падает все 100% времени. Почему так может быть? Ответ: у сервиса авторизации два инстанса, перед которыми балансировщик нагрузки. В одном инстансе данные для авторизации есть, в другом нет. Балансировщик при примерно одинаковой нагрузке включает просто случайный выбор между ними.
В общем, программисты иногда допускают такие косяки, что какая-то мелочь может привести к серьёзной аварии. Это я вам говорю как программист, который пишет для атомных станций :)
#dev
Biometrik dalam Aplikasi Mini
Sebuah fungsi bernama BiometricManager telah ditemukan dalam kode sumber dari alat Aplikasi Mini Telegram.
Diperkirakan, fungsi ini akan memungkinkan aplikasi mini untuk meminta verifikasi dari messenger untuk mengonfirmasi identitas Anda sebagai pemilik perangkat. Ini akan memungkinkan layanan untuk meningkatkan perlindungan data atau aset Anda.
Tim editorial @tginfo percaya bahwa aplikasi mini tidak akan menerima data apa pun yang terkait dengan biometrik. Alat ini akan dapat memproses respons dari klien Telegram, yang memiliki metode untuk konfirmasi biometrik.
#BotAPI
Antarmuka Bot Telegram telah dirombak total
Channel berita messenger resmi mengumumkan penyelesaian antarmuka untuk pengembang bot.
Pendatang baru sekarang memiliki cara mudah untuk mempelajari semua fitur canggih, dan dapat membuat bot dari tutorial langkah demi langkah dengan contoh untuk bahasa pemrograman populer.
Pengembang berpengalaman dapat menjelajahi pembaruan terbaru dan fitur lanjutan, siap untuk tahun 2022 dan seterusnya.
#BotAPI
Dukungan file 4GB untuk bot
Telah diumumkan di channel Bot API resmi bahwa tidak mungkin lagi menyimpan nilai bidang file_size dalam tipe integer 32-bit.
Perubahan ini diperlukan untuk mendukung file 4GB yang dapat diunggah oleh beberapa pengguna.
Editor Info Telegram mengingatkan Anda bahwa bot dan klien yang tidak diperbarui tidak dapat bekerja dengan file dengan ukuran baru.
#BotAPI
Telegram-ның бот құжаттамасы толықтай жөндеуден өтті
Ресми мессенджерлік жаңалықтар арнасы бот әзірлеушілеріне арналған құжаттаманың аяқталғанын жариялады.
Жаңадан келгендер енді барлық қуатты мүмкіндіктер туралы білудің оңай жолы бар және олардан бот жасай алады. Танымал бағдарламалау тілдерінің мысалдары бар қадамдық оқулық.
Тәжірибелі әзірлеушілер 2022 және одан кейінгі жылдарға дайын соңғы жаңартуларды және кеңейтілген мүмкіндіктерді зерттей алады.
#BotAPI
Боттарға арналған 4 ГБ-тық файлдарды қолдау
Ресми Bot API арнасында file_size өрістерінің мәнін қол қойылған 32 биттік бүтін сан түрінде сақтау бұдан былай мүмкін болмайтыны жарияланды.
Бұл өзгеріс Telegram Premium пайдаланушылары жүктеп сала алатын 4 ГБ-тық файлдарды қолдау үшін қажет.
Telegram Info редакторлары жаңартылмаған боттар мен клиенттердің жаңа өлшемдегі файлдармен жұмыс істей алмайтынын еске салады.
#BotAPI
Bot API 7.10 нұсқасына жаңартылды
• Енді пайдаланушылар ақылы медианы сатып алғанда, боттар хабарлама алады.
• Ішкі мақсаттарда пайдаланылатын ақылы медиа сатып алулар үшін пайдалы жүктеме параметрі қосылды.
• Жұлдыз-тарату сыйлық түрі мен жұлдыздық жүлделер санын көрсететін жаңа өріс алды.
• Mini-app енді интерфейсінің төменгі жағындағы қосымша түймені көрсете және басқара алады.
Өзгерістердің толық тізімі ресми веб-сайтта қолжетімді.
#жаңарту#BotAPI
Bot API нұсқасы 6.1 нұсқасына жаңартылды
Не жаңалық бар:
— Премиум тіркелгілер арқылы жүктеп салынған 4 ГБ файлдарды қолдау үшін көптеген медиа сыныптарындағы file_size енді қол қойылған 32 биттік бүтін сан түрінде сақталмайды.
— Боттар енді премиум пайдаланушылар мен стикерлерді is_premium және premium_animation жаңа сәйкес өрістерімен ажырата алады.
— API нұсқасын, қосымша түстерді, сенсорлық кері байланысты және т.б. өңдеу үшін WebApp класына бірнеше әдістер мен өрістер қосылды.
— Оқиғалар қосылды backButtonClicked, settingsButtonClicked және invoiceClosed.
— Жаңа өрістер мен әдістермен жаңартылған ThemeParams, MainButton және WebAppInitData.
— Боттар енді шақыру сілтемесінсіз жасалған қосылу сұрауларын өңдей алады — олар бәрібір chat_join_request жаңартуын алады.
— Шот-фактураларға арналған HTTP сілтемелерін жаңа createInvoiceLink әдісімен жасауға болады.
— Боттар енді пайдаланушының оларды тіркеме мәзіріне жаңа add_to_attachment_menu өрісі арқылы қосқан кезде анықтай алады. Енді біріктірілген боттарды топтарда, супертоптарда және арналарда пайдалануға болады.
Толық өзгерістер журналын ресми веб-сайттан қараңыз.
#жаңарту#BotAPI