@repo_science · Post #4190 · 20.08.2024 г., 11:13
#linux#softSkills#commandLine 📱 Linux: Master the Linux Command Line ----- Main channel: @repo_science Coupons: @freecoupons_reposcience -----
Hashtags
TGINSIGHT SIMILAR POSTS
Изходен канал @clockstackwheels · Post #884 · 5.10
Роскосмос пару дней назад опубликовал отчёт о том, почему упала "Луна-25". Там конечно канцелярит, но можно примерно понять, что двигатель коррекции получил неверные данные от акселерометра: из-за возможного попадания в один массив данных команд с различными приоритетами их исполнения прибором Это очень похоже на программную ошибку, а это моя сфера, и я решил над ситуацией поразмыслить. Хейтеры сразу стали строчить комментарии в стиле "Ололо, наняли каких-то идиотов, которые простейшие тесты не провели". Тут обычно справедливо вспоминают аварию с европейской ракетой Ариан-5 в 1996 году. Там буквально из-за пары строчек кода в результате неправильного приведения числовых типов ракета за 7 млрд баксов развалилась на куски в воздухе. Бывает. Что касается Роскосмоса, при всей его сомнительной репутации, объяснение "Дураки не провели тесты" звучит лично для меня неправдоподобно. На мой личный взгляд возможны два варианта: 1. Если в описании ошибки слово "приоритет" обозначает какой-то признак внутри объекта команды, значит, на входе в приёмный модуль эти команды не были отфильтрованы. Выглядит как грубая ошибка, целый логический блок упущен. Вряд ли этот блок вообще не написан, скорее всего он не выполнился. Такое бывает, если в тестовой среде есть какое-то условие, которого нет в рабочей, и именно это условие отвечает за выполнение участка кода. Сталкивался с таким миллион раз. Самое дикое из последнего: код парсит эксель-таблицу с числами. Разработчик написал, запустил проверил, прогнал тесты, всё ок. Отправляем в прод — все числа будто бы рандомно меняются на другие. Запускаем снова — у всех разработчиков функционирует нормально, а в проде на сервере нет. Таблица одна и та же. Можете подумать, почему так. Ответ: у разработчиков стоит русская локаль и десятичный разделитесь это запятая, а на проде в докере точка. При парсинге на проде запятая уже интерпретируется как разделитель тысячных разрядов. 2. Куда вероятнее, что слово "приоритет" в описании ошибки обозначает время, а, значит, список команд просто не был отсортирован, и в обработчик уже после актуальных значений попали какие-нибудь начальные нулевые данные, сбившие логику. По косвенному описанию проблемы очень похоже именно на это. Значит, на тестах всегда порядок возникновения команд соответствовал порядку их прихода, а в реальности перестал соответствовать. Вообще, работать с железом очень сложно. Какую-нибудь схемку заглючило от холода, она задержала ответ от датчика на миллисекунду, и всё. Никто не знал, что такая проблема возможна, пока она не возникла. Мне рассказывали о таком случае: юзер логинится на сайт и иногда логин проходит, а иногда нет. Логин и пароль те же самые. Просто в случайные моменты времени ему возвращают токен авторизации, а в другие моменты времени ошибку 403. Никакой закономерности нет вообще. Нет зависимости от времени суток и даты. Сервер точно работает стабильно и не падает все 100% времени. Почему так может быть? Ответ: у сервиса авторизации два инстанса, перед которыми балансировщик нагрузки. В одном инстансе данные для авторизации есть, в другом нет. Балансировщик при примерно одинаковой нагрузке включает просто случайный выбор между ними. В общем, программисты иногда допускают такие косяки, что какая-то мелочь может привести к серьёзной аварии. Это я вам говорю как программист, который пишет для атомных станций :) #dev
Hashtags
Търсене: #commandline
@repo_science · Post #4190 · 20.08.2024 г., 11:13
#linux#softSkills#commandLine 📱 Linux: Master the Linux Command Line ----- Main channel: @repo_science Coupons: @freecoupons_reposcience -----
Hashtags
@repo_science · Post #3361 · 27.06.2023 г., 21:42
#softSkills#commandLine#cheatSheet Command Line Cheat Sheet ----- Main channel: @repo_science Coupons: @freecoupons_reposcience -----
@AppPie · Post #2386 · 07.04.2025 г., 04:04
#Apps OCRmyPDF: 为扫描 PDF 添加 OCR 文本层 🔗GitHub OCRmyPDF 是一个开源的命令行工具和库,它可以为扫描的 PDF 文件添加 OCR 文本层,使文件内容可被搜索和复制粘贴。该工具利用 Tesseract OCR 引擎识别 PDF 中图像里的文本,并将其准确地放置在原始图像下方,使得用户可以轻松地搜索和选择文档中的内容。 OCRmyPDF 的工作原理是分析 PDF 的每一页,确定所需的色彩空间和分辨率,然后使用 Ghostscript 将每页栅格化,接着通过 Tesseract 进行 OCR 处理,并将生成的 OCR 层集成回原始 PDF。与直接使用 ImageMagick 或 Ghostscript 处理图像然后通过 Tesseract OCR 不同,OCRmyPDF 能够生成变化最小的 PDF 输出,同时保留原始图像的精确分辨率。 主要特点 - 多语言支持:支持 Tesseract 的所有语言包,包括英语、法语、中文等 - 图像处理:自动旋转页面、去偏斜、清理背景和图像优化 - PDF/A 生成:默认生成符合 PDF/A 标准的存档文件,便于长期保存 - 批处理能力:支持多核处理,提高 OCR 速度 - 多平台支持:适用于 Linux、macOS、Windows 和 FreeBSD - Docker 支持:提供 Docker 镜像,方便快速部署 - JBIG2 优化:支持 JBIG2 编码,大幅减小黑白图像的文件大小 - 页面选择:允许只对 PDF 中的特定页面进行 OCR 处理 - 扩展性:支持插件系统,可自定义处理流程 部署选项 - 通过 pip 安装:`pip install ocrmypdf` - Docker 容器 - 系统包管理器:支持多种 Linux 发行版和 macOS 的 Homebrew - 从源代码构建 开源许可证 MPL-2.0。 #GitHub#OpenSource#PDF#OCR#CommandLine 📮 频道 @AppPie
@githubtrending · Post #15135 · 10.09.2025 г., 13:00
#javascript#ansi#ansi_escape_codes#chalk#cli#color#commandline#console#javascript#strip_ansi#terminal#terminal_emulators Chalk is a popular Node.js tool that lets you easily add colors and styles to text in the terminal, making your console output clearer and more attractive. It supports many colors, including 256 and truecolor (millions of colors), and allows you to combine and nest styles like bold, underline, and background colors. Chalk auto-detects if your terminal supports colors and works without adding dependencies or changing built-in string behavior. You can create custom themes and use template literals for dynamic, colorful logs. This helps you highlight important information in your terminal output, improving readability and debugging. Chalk is reliable, actively maintained, and widely used in many projects. https://github.com/chalk/chalk