Drno, шить нужно всего один раз, а далее будет намного более удобно: прям из коробки куча настроек, софт оптимизирован по размеру, куча дополнительного устанавливаемого софта, всё готово для разделения на RO и RW с целью отделить прошиву от изменяемой части...
Причём шить некоторые модели можно вообще по tftp в момент их загрузки, поэтому будет достаточно включать их в сеть и зажимать кнопкочку...
А дешёвые китайцы вообще часто сразу идут с openwrt.
Наоборот, чем больше девайсов, тем больше смысла всем этим заниматься.
Полноценный Linux с systemd, dbus и кучей другого обвеса, с тяжёлым ядром и вагоном лишних модулей под GPU, звуковухи, периферию, море файловых систем и сетевых интерфейсов - зачем это нужно?
Зачем так много памяти и диска? Это будут не простые шлюзы в сеть, а с какой-то сложной ресурсоёмкой функциональностью?
Есть куча SOHO роутеров, которым столько не нужно, но со своей задачей они справляются. И на них нередко отлично шьётся openwrt или какой-нибудь ещё кастомный линукс. И у китайцев можно найти даже не сами роутеры, а всего лишь платы для них без корпуса.
Сильно сэкономить вряд ли выйдет, это нужно на очень большие партии рассчитывать. В дешёвом ценовом сегменте и так уже сэкономлено во всём, включая скидки за крупные партии.
Алексей, нет, общепринятая практика, что есть .h-файл с заголовками (описания типов, функций итд) и .c с кодом. В одну кучу это собирают при линковке. Примерно так:
dim5x, я склонен думать это google colab нарочно борется с такими пустыми циклами в своём интерпретаторе, добавляя фиктивные sleep или даже хотя бы перемещая по pass в конец очереди планировщика.
Делать процессородробительный цикл всё равно будет по-прежнему неправильно. И этому надо учиться сразу.
Можно установить что ssh-сервер, что ssh-клиент (сборку openssh от microsoft) на современную винду начиная с десятки. На проф-редакциях и выше - прям с помощью winget - но даже на хоум можно поставить из бинарного дистрибутива (в интернете полно объяснений).
А также rsync, mc итд. Я уж не говорю о возможности поставить на винду mingw/msys или wsl...
Также под Linux вполне работает samba. Тоже вполне вариант в некоторых сценариях. Webdav, ftp и другие-прочие варианты вряд ли имеют смысл, но они тоже имеются.
Adamos, справедливости ради стоит сказать, что Bitrix тоже когда-то распространялся зашифрованным (кажется, Zend Optimizer). Но потом они от этого всё же отказались.
dim5x, я не знаю что это за "пример кода" и что там за "железо" и как рисуются эти "графики". Но так делать всё равно НЕЛЬЗЯ. Потому что в другой раз эта ошибка дорого обойдётся. Потому что именно семантически бесконечный цикл без полезных действий в любом случае целиком исполняется процессором. В любом языке. Это надо сразу же знать и никогда не делать.
Кстати, и первичную задачу лучще было бы сделать thread.join() на любом из запущенных тредов. Если они всё равно бесконечны - он никогда не завершится.
dim5x, бесконечный цикл безо всяких действий полностью исполняется процессором и считается в user time, все миллионы и миллиарды итераций. А sleep приводит к системному вызову и стоит около нуля user time - штучное количество тактов процессора в секунду. Фактически это возврат управления операционной системе.
Это реально так и работает. Я не раз видел, как люди допускали подобную ошибку. Например, делали "ничего не делающий" цикл в bash, который по факту всё же "что-то делал" и выжирал одно процессорное ядро подчистую.
Конечно, может зависеть от операционной системы и конкретной реализации. В DOS, например, даже sleep всегда является циклом, потому что процессор полностью в распоряжении программы, операционная система включается лишь по запросу или в результате аппаратных прерываний. Но мы же говорим о полноценных современных многозадачных операционных системах.
Bearer Auth по определению имеет такой формат. Тут скорее всего нужно кастомный класс написать. С fastapi только какую-то простую мелочь писал, но вот для requests пару раз делал нестандартные авторизации - там нужно класс с нужным интерфейсом сделать и его передавать вместо умолчального.
lisi4ka, ещё замечание: при SELECT не надо делать COMMIT, ведь изменений нет. Ну кроме случаев, когда в SELECT вызывается функция, которая что-то изменяет в базе.
Тем более на каждой итерации даже при изменении данных COMMIT смысла не надо делать, обычно делают весь цикл изменений или всю серию или часть изменений и затем COMMIT скопом. Как пример, когда делается массовая вставка в таблицу, то можно каждые 10000 записей делать COMMIT, но не на каждую запись - это лишь замедлит операцию.
ter56, так как приложение само записывает звук, то вряд ли. Скорее можно записать звук другим приложением, обработать его и отправить как файл. Но это уже не будет голосовуха.
Tech, добавлю, что для исключения раскрытия данных при наличии физического доступа надо все ключи закрывать пассфразами и использовать агенты (ssh-agent, gpg-agent). Если всё правильно сделать, ключи будут использоваться только на той машине, с которой залогинен, а дальше прокидываться по ssh. И секретный ключ можно держать на железном носителе типа yubikey (самый известный, есть и другие варианты). Да, это придётся поразбираться и повозиться. Да, yubikey стоит некоторых денег и его может быть сложнее купить в условиях санкций.
Лучше вынести секреты в отдельный файл, а его шифровать или gnupg, или ansible-vault. Приватный ключ для gnupg в любом случае не надо класть в git, а доставлять отдельным механизмом.
Для управления шифрованными файлами в целом можно использовать pass https://wiki.archlinux.org/title/Pass, который комбинирует gnupg и git для хранения шифрованных файлов с неплохим cli-интерфейсом.
Ну а вообще я бы посмотрел на готовые dotfiles-менеджеры типа yadm.
Из самого простого что-нибудь типа https://osmo.mobi
Даже в бесплатном варианте можно мониторить некоторое количество объектов, клиент osmodroid для смартфонов или iosmo для огрызков.
Также есть в разном другом софте возможность настроить и дёрнуть координаты по URL, например, в osmand.
Причём шить некоторые модели можно вообще по tftp в момент их загрузки, поэтому будет достаточно включать их в сеть и зажимать кнопкочку...
А дешёвые китайцы вообще часто сразу идут с openwrt.
Наоборот, чем больше девайсов, тем больше смысла всем этим заниматься.
Полноценный Linux с systemd, dbus и кучей другого обвеса, с тяжёлым ядром и вагоном лишних модулей под GPU, звуковухи, периферию, море файловых систем и сетевых интерфейсов - зачем это нужно?