sudo killall snap-store sudo snap refresh
Beacon
- https://github.com/vhiribarren/beacon-simulator-android?tab=readme-ov-file — Симулятор маяка
- https://habr.com/ru/articles/278689/ — iBeacon. Мифы и реальность
- https://vc.ru/services/1098953-ispolzovanie-tehnologii-ble-pri-rabote-s-beacon-mayachkom-v-react-native — Использование технологии BLE при работе с beacon-маячком в React Native
- https://stackoverflow.com/questions/58004370/different-interval-time-between-ble-device-advertising-and-the-callback-from-sta — Разный интервал времени между рекламой устройства BLE и обратным вызовом из startScan телефона Android
- https://habr.com/ru/companies/navigine/articles/269735/ — Как работают маяки: Физика технологии iBeacon
- https://habr.com/ru/articles/245325/ — Навигация в помещениях с iBeacon и ИНС
- https://www.dusuniot.com/ru/blog/angle-of-arrival-bluetooth-gateways/ — Как технология Bluetooth с определением угла прихода (AoA) модернизирует мир
- https://moitvivt.ru/ru/journal/pdf?id=821 — Позиционирование в трехмерном пространстве внутри помещений по данным Bluetooth-маяков
Термины:
- Magor и Minor — это идентификаторы пространства, например здание и помещение.
- RSSI — мощность сигнала (например на расстоянии 1 метр)
- PPS — количество пакетов в секунду (сканирование не менее 30 секунд)
Для расчета расстояние между BLE устройством и маячком на основе значения RSSI используем данную формулу:где:

d — расстояние до устройства (маячка),
TX Power — мощность сигнала, измеренная на стандартном расстоянии (обычно 1 метр) от маячка
RSSI — мощность сигнала,
n — коэффициент затухания сигнала (environmental factor), отражающий потери сигнала в среде; типичные значения находятся в диапазоне от 2 до 4.
Эта формула позволяет оценить расстояние между двумя устройствами, используя логарифмическую зависимость изменения мощности сигнала от расстояния.
Значение коэффициента затухания сигнала n зависит от конкретных условий окружающей среды, в которой происходит передача сигнала.
Открытое пространство без препятствий: Значениеnоколо 2. Это условие предполагает минимальное затухание сигнала, когда между устройствами нет значительных препятствий, и сигнал может распространяться прямолинейно.
Внутри помещений с препятствиями: Значениеnможет варьироваться от 2.5 до 3.5 или даже выше. В помещениях сигнал может отражаться от стен, потолков и других объектов, что увеличивает затухание. Более высокие значенияnиспользуются для учета этого дополнительного затухания.
Сложные условия с множеством препятствий: В помещении с высокой плотностью препятствий, таких как склады, производственные помещения или городские условия с множеством отражающих поверхностей, значение n может быть установлено в диапазоне от 4 до 5. Эти условия требуют более высокого коэффициента затухания для компенсации значительных потерь сигнала.
Важно понимать, что определение наиболее подходящего значения n часто требует эмпирического подхода. Это означает проведение тестов в целевой среде для измерения реального распределения сигнала и адаптации коэффициента затухания для достижения наилучшей точности в оценке расстояния.
Интеграция Android Wear OS c мобильным устройством на Android
Задача: создать прототип приложения, которое позволяло бы получать частоту сердцебиения с часов на Wear OS и передавать эти данные на смартфон под управлением Android.
Подготовительные работы:
- Создать эмулятор с предустановленными Google Play сервисами
- Установить на эмулятор приложение из Google Play Wear OS (и с не официальных источников https://apkpure.com/wear-os-by-google-smartwatch/com.google.android.wearable.app/download)
- Создать эмулятор для Wear OS (у меня в примере использовался API 30)
- Выполнить сопряжение, используя следующую статью https://developer.android.com/training/wearables/get-started/connect-phone
Результат: будут созданы два приложения, один для часов, другой для смартфона и при этом из package name должен быть одинаковым. А судя из статьи https://stackoverflow.com/questions/48921165/syncing-data-items-between-mobile-device-and-wear ещё и подписи.
Читать далее «Интеграция Android Wear OS c мобильным устройством на Android»Как мне удалить все пакеты, установленные с помощью pip?
pip freeze > requirements.txt
pip uninstall -r requirements.txt
или
pip uninstall -r requirements.txt -y
https://stackoverflow.com/questions/11248073/how-do-i-remove-all-packages-installed-by-pip
VSCode — Disable ALL Auto Formatting on Save
Had the same problem, just bind ‘cmd + s’ to saving without formatting. press cmd+shift+p then search for save without formatting and click on the configure icon, then bind it with ‘cmd + s’, problem gone 🙂
Awesome. Followed your advice: View>Command pallete> typed «Save» on the text search field. See «File: Save without formatting» on far right cog-wheel icon setting (clicked it),
https://stackoverflow.com/questions/61827206/vscode-disable-all-auto-formatting-on-save
Получение всех строковых переменных из Javascript файла
To get all the strings from a Javascript file, you’ll need to parse the file to get a syntax tree (AST), then walk it.
You can do this trivially with the ESPrima library (for parsing) and Estraverse (for walking the AST).
Читать далее «Получение всех строковых переменных из Javascript файла»Блокировка авторизации по ssh
Переходим в файл /etc/ssh и открываем файл sshd_config. Находите параметр PasswordAuthentication и меняем значение с yes на no
Очистка от лишних образов docker
Удаление контейнеров
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
Удаление образов
docker images -a | grep none | awk '{ print $3; }' | xargs docker rmi
According to the doc, the following command will delete images older than 48 hours.
docker image prune --all --filter until=48h
Где хранятся ярлыки приложений рабочего стола
/usr/share/applications
~/.local/share/applications
Если приложение от snap, то
/var/lib/snapd/desktop/applications
Зеркало для docker
Альтернативное зеркало для docker
"https://dockerhub.timeweb.cloud/"
В файл etc/docker/daemon.json добавляем:
"registry-mirrors": [
"https://mirror.gcr.io/",
"https://dockerhub.timeweb.cloud/"
]
Чтобы сохранить образы в собственный репозиторий можно воспользоваться:
docker pull ubuntu:20.04
docker tag ubuntu:20.04 my-registry/ubuntu:20.04
docker push my-registry/ubuntu:20.04
В этом примере показана возможность сохранить образ ubuntu:20.04 в собственном репозитории