Будапешт











По мотивам истории об угнанном велосипеде я решил поизучать какие есть решения для помощи в поиске украденных вещей. У AirTag, который помог найти велосипед, есть один существенный недостаток — функция защиты от нежелательного отслеживания (unwanted tracking protection). Эта функция предусмотрена для того, чтобы нельзя было незаметно подбросить метку другому человеку и следить за ним. Благодаря ей, сколько-нибудь подготовленный вор, с помощью стандартного встроенного в ОС софта, легко узнает, что к велосипеду прикреплён AirTag или другая совместимая гео-метка.
Поэтому я бы хотел найти такую гео-метку, которая обладала бы следующими свойствами (в порядке убывания важности):
В итоге, я пришел к тому, что есть четыре типа устройств, о которых я расскажу ниже. Если коротко, то, к сожалению, сейчас на рынке нет ничего лучше AirTag.
Итак, четыре типа устройств:
Суть всех вариантов кроме третьего заключается в том, что есть два типа устройств: гео-метка и ридер (считыватель).
Гео-метка прикрепляется к отслеживаемому объекту, а ридер может находить метки находящиеся неподалёку. Чем сильнее сигнал от гео-метки, тем дальше может находиться ридер чтобы её найти, но и тем больше требуется энергии для работы метки. Как следствие — тем больше нужна батарейка или тем чаще придётся её менять.
В зависимости от типа метки, ридером может выступать или специализированное устройство, или обычный телефон. Ридер знает свои координаты и по мощности сигнала от метки может определить примерное расстояние до неё и направление к ней.
Для работы системы нужен не один ридер, а целая сеть устройств, которые должны покрывать максимально большую площадь. Чем больше сеть, тем выше шансы найти украденную вещь. Сеть может быть построена энтузиастами или коммерческой компанией. Как обычно, опен-сорсные решения могут иметь плохую поддержку, в данном случае покрытие сети, а коммерческие — могут быть не бесплатными.
Таким образом, выбор устройства — это поиск компромисса между:
Я уже как-то писал о своём опыте общения с немецкой полицией. Буквально сегодня завершился ещё один эпизод.
Два дня назад, в воскресенье, мы обнаружили, что с подземной парковки угнали Олин велосипед :( Надо отметить, что на парковку можно попасть только с ключом, велосипедные комнаты также закрываются на ключ, а сами велосипеды пристёгиваются к вбитой в пол скобе.
В теории всё довольно неплохо защищено :), а на практике: на парковку легко попасть через автомобильные ворота вслед за въезжающей или выезжающей машиной; соседи-идиоты часто не закрывают велосипедные комнаты, а скобу воры просто спилили.
Оба наших велосипеда были прикованы к одной скобе, но забрали только Олин. Есть гипотеза, что вор был только один и он не мог утащить два велосипеда. Вот только тут ему немного не повезло: буквально пару недель назад я прицепил под седло Олиного велика холдер с AirTag-ом! При этом на моём гео-метки не было!
Первым делом мы сообщили о происшествии в полицию, в Берлине это можно сделать прямо онлайн, и написали заявку в страховую. Из полиции нам почти сразу перезвонили, позадавали вопросов и сказали, что завтра, в понедельник, к нам придёт полицейский, чтобы осмотреть место преступления.
А дальше мы взяли каршеринг и поехали к точке, где предположительно находится велосипед.
В двух предыдущих постах я рассказал о том, что такое ipfs и как развернуть сайт в ipfs и, помимо этого, для эксперимента настроил раздачу своего блога через ipfs: ipfs.romka.eu.
Сайт обслуживается дешёвой виртуальной машиной, а, как оказалось, ipfs довольно прожорлив до ресурсов процессора, особенно при выполнении команды ipfs add
. Несколько раз хостер просто молча прибивал мою виртуалку из-за превышения ею каких-то лимитов.
В моём случае ipfs работает в докер-контейнере, который запускается через docker compose
. Поэтому я сконфигурировал запуск контейнера следующим образом, чтобы сильно ограничить потребляемые ресурсы:
ipfs:
image: ipfs/kubo:latest
container_name: ipfs_container
volumes:
- /home/romka/ipfs:/data/ipfs
- /var/www/romka.eu/public:/data/ipfs/public:ro
<...>
restart: always
command: daemon --enable-gc --migrate=true --enable-pubsub-experiment
cpus: 0.3
mem_limit: 256m
memswap_limit: 256m
environment:
GOMAXPROCS: 1
Теперь ipfs-процесс ограничен по ресурсам и хостер доволен, но вот команда ipfs add
стала падать с ошибкой вида Error: unexpected EOF
. Я не стал копать глубже, но в свете того что ошибка появилась после добавления ограничений, похоже на то что это следствие того что ОС просто прибивает процесс ipfs из-за Out of Memory error (OOM). Дальше я расскажу как мне удалось исправить эту проблему.