orangepig

Общество Защиты Интернета

Я недавно писал в Фейсбуке вызвавший ряд недоумённых вопросов пост о том, что отдельные представители оппозиции прямым текстом сообщают нам, что готовы к сотрудничеству только в случае отказа нам в регистрации и/или ареста членов оргкомитета Партии прямой демократии.

Эдакая уловка-22 — пока за вас можно голосовать, за вас нельзя голосовать.

Вообще говоря, я не хотел выносить в публичное поле детали этого диалога, только своё изумление самим его фактом. Однако, боюсь, представители Общества Защиты Интернета Михаил Климарев и Александр Исавнин не оставляют мне выбора — с их стороны попросту началась прямая ложь о якобы менявшихся формулировках, о нашей незаинтересованности в сотрудничестве и так далее.

«Однако, хочу отметить, что в случае отказа в регистрации партии, ареста её учредителей (что конечно крайне нежелательно) произойдет переоценка рисков в лучшую сторону»
— Александр Исавнин, Общество защиты интернета

Так что публикую скриншот целиком.

Разумеется, утверждения Михаила и Александра о менявшихся на сайте формулировках, завлечении обманным путём, сокрытии информации об участии в конференции политической партии и так далее опровергаются скриншотами той же переписки с Александром, ведшейся с 13 декабря. Точно так же эта информация не скрывалась ни от других докладчиков, ни от членов программного комитета. Более того, неоднократно подчёркивалось, что присутствие рядом с конференцией политической партии (по понятной причине до 10 января я не мог называть её прямо) никак и ни при каких обстоятельствах не должно влиять принятие или отклонение конкретных докладов, независимо от их тематики и личности докладчика.

Зачем Михаил и Александр лгут, тем более — столь примитивным образом, мне не очень понятно.

Впрочем, с другой стороны, мне бы хотелось извиниться и перед оппозицией в целом. Мы как партия не относим себя ни к проправительственными, ни к оппозиционным силам — у нас в принципе другие задачи. Поэтому мы с удовольствием сотрудничаем со всеми, кто готов конструктивно обсуждать нашу повестку: это можно заметить хотя бы по списку СМИ, с которыми мы общаемся.

Вместе с тем, я понимаю, что Общество Защиты Интернета — это, по сути, крохотный закрытый клуб по интересам, на сайте которого нет ни фамилий его участников (я несколько раз уточнял у Михаила, действительно ли Александр является сотрудником ОЗИ и имеет ли он полномочия высказываться от имени ОЗИ — но так и не получил прямого ответа), ни устава, ни программы действий. На данный момент не очень ясно, является ли это Общество зарегистрированной организацией, может ли в свете этого Михаил считаться его исполнительным директором — или это просто обложка для принадлежащего Михаилу фонда цифровых исследований «Сигнал», в который предлагается сдавать пожертвования на деятельность Общества. Михаил на данные вопросы отвечать отказался.

В связи с этим обещаю ни при каких обстоятельствах не распространять точку зрения ОЗИ ни на оппозиционные силы в целом, ни на каких-либо конкретных людей и организации, кроме прямо заявляющих о сотрудничестве и поддержке ОЗИ.

Повторюсь, что мы заинтересованы в сотрудничестве со всеми силами, партиями, движениями и людьми, готовыми конструктивно обсуждать интересующие нас и общество вопросы, а не заниматься бесконечным делением на своих и чужих.

orangepig

Доброе утро

«Вячеслав Макаров (Wargaming) создаст партию для айтишников в кооперации с сотрудником Яндекс.Денег, бывшим продюсером ЖЖ и olegart’ом» (я не мог удержаться от того, чтобы дать эту ссылку первой — ради заголовка и Ашманова в комментариях)

«Политический стартап а-ля игра в танчики затеял один из создателей компьютерной игры World of Tanks. Он рассказал «Фонтанке», кто такой цифровой политик, зачем создаёт «Партию Прямой Демократии» и почему не считает Путина врагом»

«Максим Курников, Ирина Баблоян с вами в студии. Это «Дневной разворот» на радиостанции «Эхо Москвы» начинается. Если вы наблюдаете нас в YouTube, то можете уже увидеть нашего гостя. Это Вячеслав Макаров, директор по продукту World of Tanks и глава департамента новых исследований и разработок Wargaming. Правильно я всё говорю?»

«Чтобы разобраться, зачем разработчику World of Tanks политическая партия и какой она может стать, корреспондент RTVI Сергей Морозов встретился с самим Вячеславом Макаровым, а также руководителем программы «Российская внутренняя политика и политические институты» московского Центра Карнеги Андреем Колесниковым и Глебом Павловским, который был начальником одного из учредителей «Партии прямой демократии» Тимофея Шевякова в Фонде эффективной политики»

«Znak.com поговорил с одним из основателей партии Тимофеем Шевяковым про участие в выборах в 2020 и 2021 годах, про консультации с администрацией президента и про планы по созданию 43 региональных отделений»

«Старт «Партии прямой демократии» в Facebook и Telegram - просто образец для политических кампаний нового сезона»

А также вчера в оргкомитете партии был день смеха — мы вслух зачитывали избранные места из переписки:

1) с изданиями, которым многочисленные инсайдеры в Кремле совершенно достверно сообщили, что «Партия прямой демократии» — проект Кремля, но почему-то сделали это лишь спустя сутки после того, как новости о ППД вышли во всех основных СМИ (у меня тоже есть надёжные инсайдеры на Wall Street, всегда готовые сообщить вчерашний курс любых акций!)

2) с сидящими без бюджетов политтехнологами, срочно предлагающими занедорого написать программу / создать идеологию / продать ненужную партию / выдвинуть кандидата в президенты (предложения помочь бесплатно тоже были, одно из них начиналось с тезиса «ответьте сами себе на вопрос: как появилась планета Земля?»)

3) с многочисленными комментаторами, рассказывающими про раскрутку «в подконтрольных СМИ» (вы ещё не знали, кто главный медиамагнат России, контролирующий одновременно Ъ, РБК, Эхо Москвы, Знак, Фонтанку, RTVi и ещё больше сотни изданий?)

4) с людьми, считающими «умное голосование Навального», в ходе которого тасуются по кругу депутаты от ЕР, СР и КПРФ, единственной приемлемой формой протеста в России (а в знак протеста против Путина президентом мы выберем Медведева!)

5) с человеком, взявшим на себя всю тяжесть забот о пролетариате и его нуждах, а также защите его от происков буржуазии, то есть, как все уже догадались, Шмуклером

Короче, «товарищ генерал, мы думали, бомба будет килотонн на сто, а она как ебанёт!».

orangepig

Новостям с CES посвящается

Если Apple выпустит автомобиль, то он будет без фар вообще, потому что 83 % поездок совершаются в светлое время суток, а значит, потребителю фары не так уж нужны.

Через некоторое время выйдет внешняя навесная фара Belkin, всего за $2999,95. Более популярны, впрочем, будут недорогие — от $29,95 — налобные фары с торговой площадки Алиэкспресс, продающиеся парами: для водителя и переднего пассажира.

В ответ Samsung выпустит автомобиль под брендом GALAXY™, у него будут две фары, ближний и дальний свет. Но ближний будет включаться только через голосового помощника Bixby, поэтому владельца автомобиля Samsung GALAXY™ можно будет заметить издалека — по дальнему свету в любое время суток и в любом месте.

Кроме того, открывание крышки, расположенной на месте лючка бензобака, будет являться негарантийным случаем. Начиная со второй партии, на ней разместят наклейку с предупреждением.

У автомобиля Yota сзади будет дополнительный керосиновый фонарь. С ним можно будет неспешно ездить задним ходом, если с горки — то даже не заводя двигатель.

К автомобилю EA фары, а также двигатель, коробку передач, тормоза и руль можно будет докупить отдельно. Покупка руля и фар станет доступна после пяти, двигателя, тормозов и коробки передач — после пятнадцати тысяч километров пробега (при покупке одним бандлом — скидка 15 %).

Через некоторое время появится патч, позволяющий накручивать одометр, но ещё чуть позже в автомобилях с ним дистанционно заблокируют двери (в некоторых случаях — с пассажирами внутри).

Хiaomi выпустит универсальный автомобиль с тремя фарами, с ближним, дальним и средним светом, но в первых трёх версиях работать будет только центральная фара, ближний и средний свет будут выглядеть совершенно одинаково, а дальний — как ближний, только светить будет не на дорогу, а куда-то вверх.

Но к четвёртой версии всё либо исправят, либо привыкнут.

У автомобилей Texet, Doogee и Digma фары будут стоять внутри салона и светить водителю в лицо. С другой стороны, на сайте drive2.ru можно будет найти подробные инструкции по закреплению на водителе зеркальца так, чтобы свет фар отражался на дорогу, а некоторые другие неудобства, например, высокий расход бензина даже при заглушённом двигателе и перегрев коробки передач при скорости выше 10 км/ч, для многих автовладельцев с лихвой окупятся разницей в цене с более именитыми брендами.

В автомобиле Wargaming всё, в принципе, будет нормально, а двигатель так и вовсе один из самых экономичных на рынке, но и водители, и пассажиры всё равно будут недовольны. Кроме того, собаку так и не вернут.

Arduino не будет выпускать автомобиль. Arduino, как и пингвин, прекрасно в своей изначальной форме, в нём нечего улучшать.

Президента Huawei же просто объявят террористом и грохнут ракетой во время его подчёркнуто недружественного визита на фабрику Foxconn, негласной, но очевидной целью которого будет являться организация срыва выпуска продукции Apple. Фабрику Foxconn после этого восстановить уже не удастся, в результате чего выпуск продукции Apple окажется сорван.

orangepig

План спасения

Извините,  я не могу сдерживаться. Я вчера это чинил до четырёх утра, потому что в  семь утра это уже надо было везти и ставить. Не конкретно вот это,  разумеется, а вообще порядка двух тысяч строк кода, написанных вот так. Я  их с утра понедельника чиню.

***

Задача — услышать бикон  (стоит в подъезжающем авто), аутентифицировать, проверить по базе, что  этому можно въезжать, определить расстояние и направление движения, в  нужный момент дать команду на открывание ворот. Смысл — не просто  аутентификация транспондера, а чтобы авто проезжало через уже  открывшиеся ворота, не задерживаясь перед ними. И чтобы при этом ворота  не реагировали на те же транспондеры в машинах, например, стоящих на  стоянке в двадцати метрах за воротами.

Ну т.е.
1) слышим бикон
2) отвечаем ему ACK, в котором есть случайное число
 3) бикон отвечает пакетом с этим же числом, подписанным  криптографической подписью с ключом, известным только бикону и базе  (аутентифицировали)
4) база запускает процедуру измерения расстояния  — в ней всё уже формируется на уровне железа: база излучает специальный  пакет, бикон на него отвечает (ToF на LoRa в диапазоне 2,4 ГГц)
5) база повторяет измерение три раза с интервалом 1 секунда (определяем направление движения)

Теперь решение.

Как выдерживается секундный интервал между измерениями?

 Миганием светодида. Ну т.е. зовётся функция мигания светодиода, у  которой параметры — сколько раз, период 1, период 0. 5, 100, 100 — вот и  получилась секунда.

Collapse )
orangepig

(no subject)

Представитель инвестфонда словно взорвался.

— Высочайшее достижение финтеха! — провозгласил он. — цифровая объектная модель наподобие виртуальной реальности градуирует себя вдоль блокчейна и там, внутре, обращает материю экосистемы в спиритуальные инновационные вихри, из коих и возникает синекдоха переосмысления рынка...

***

(я хотел написать длинный пост о том, что апологеты инноваций, кажется, очень боятся объективной реальности, подменяя её длинными бессмысленными наборами слов, а у них в комментах пасутся желающие подобрать такой ответный набор слов, чтобы им дали денег за консультацию — но к концу первой пинты Kilkenny окончательно решил, что краткость — сестра таланта)

orangepig

Ловля призраков

Если при тестировании LoRaWAN в офисе вы обнаруживаете, что у вас на ровном месте теряются пакеты, отправленные с подтверждением, джойн проходит через два раза на третий, а заглянув в лог сервера сети, видите попытки джойна устройств на странных частотах — открутите от базовой станции антенну.

Это перегрузка входного тракта, при которой он не просто видит фантомные пакеты на соседних каналах либо со сдвигом на 1, 4 или 11 МГц, а ещё и принимает их вместо основного пакета. А так как при ответе сервер сети в качестве частоты RX1 выбирает ту, на которой устройство к нему постучалось — он отвечает на частоте фантомного пакета, которую устройство не слушает.

Выход — уменьшить силу сигнала, открутив антенну или программно ограничив выхлоп устройств в эфир (только при установке их на реальном объекте не забудьте фитилёк обратно выкрутить).

Collapse )
orangepig

(no subject)

Яндексоиды всё пишут хорошо и правильно (в основном потому, что пишут совершенно очевидные вещи — что аджайл в разработке железа заходит так себе, например), кроме одного: из текста прямо выпирает, как разработчик софта выбирал себе платформу пожирнее и покомфортнее с точки зрения железа.

Проблема в том, что в реальном устройстве, которое пойдёт в производство, почте всегда стоит какая-то не топовая платформа. Иногда настолько не топовая, что всё, сделанное на «четыре ядра, четыре гига» в лучшем случае приходится переписывать заново, а в худшем — проект вообще не удаётся.

Тупо потому, что программисты, работающие с прикладными системами верхнего уровня, не представляют себе ограничений нижнего. Если вы подойдёте к программисту, радостно обнимающему все имеющиеся у него многочисленные ядрышки NanoPi M4, и скажете, что в реальном проекте будет Cortex-A8 на 600 МГц с 256 МБ ОЗУ и 32 МБ флэша с файловой системой UBIFS, он сначала подумает, что вы так шутите.  В его мире такой процессор последний раз был в купленном на Али на распродаже китайском смартфоне. Лет восемь тому назад.

Более того, ещё меньшее число разработчиков не представляет этого не только с точки зрения мощности процессора, но вообще всех физических ограничений:

  • нет, LoRaWAN не позволит вам собирать данные с 300 устройств каждые 10 секунд
  • нет, GPS не даст вам точность ±2 метра в движении по реальной местности
  • нет, старший STM32F4 не сможет неделю непрерывно молотить нейросетку на потоке данных с гироакселерометра на одной зарядке аккумулятора на 500 мА*ч
  • нет, вы не сможете сделать точное позиционирование по RSSI BLE-маячков на металлургическом комбинате
  • нет, ставить в архиве на 900 полок на каждую полку по 3-ваттному RFID-считывателю с узконаправленной антенной — плохая идея

Это, кстати, всё из реальных проектов, и во всех пяти случаях у исполнителя были работающие прототипы. Правда, в них было устройств не триста, а пока только пять, GPS сутками лежал на подоконнике, гироакселеметр работал от павербанка Xiaomi, позиционирование было поднято в офисе с гипсокартонными стенами, а RFID-считыватель попробовали один на одной полке.

Поэтому, дети, если вы делаете железо, а особенно вот этот вот Интернет Вещей ваш, запомните две вещи:

  • у проекта должен быть архитектор (менеджер, оунер, как там у вас ещё принято), который реально понимает врождённые ограничения применяемых технологий, а не только делает красивые презентации руководству
  • идти в таких проектах можно только снизу вверх — как бы ни была прекрасна ваша нейросетка, она не сможет обработать данные, которых у вас нет, потому что вам их снять и доставить до нейросетки нечем

P.S. Реакция клиента с довольно безумным техзаданием, на которое мы написали длинный отзыв с объяснением, что из этого не будет работать, почему, а также как надо сделать, чтобы работало (а от чего вообще придётся отказаться): «Из всех, кто к нам пришёл по запросу, вы единственные, кто смог вообще что-то сказать». И перечень разных красивых имён крупных интеграторов.


orangepig

Рамдиск vs SSD

Сравнил чистку и сборку большого проекта в Windows 10 / WSL / Ubuntu 18.04 LTS на SSD и в рамдиске (tmpfs). По микроконтроллерным меркам — много-много исходников, ибо в проекте есть и ОСРВ,  и стек LoRaWAN, и стек BLE. Размер папочки после сборки — 587М, под рамдиск выделял один гиг.

time make {clean,all}



Ну, такое. Разница есть, но не такая, чтобы за неё убивать.

Ждём WSL2.

P.S. Сборка того же кода на CentOS 7. Процессор немного слабее, вместо интеловского SSD — RAID-6 на медленных ноутбучных HDD.

Ждём WSL2.

P.P.S. Снова Windows 10 — вынес на рамдиск ещё и .ccache:



P.P.P.S. Windows 10, на рамдиск вынесен только ccache:



Будем, наверное, считать это оптимальным вариантом, пока мы ждём WSL2: легко прозрачно автоматизировать, первая сборка после перезагрузки компа долгая, зато потом в полтора раза быстрее обычного. Память же нынче недорога, да и в принципе полгига на ccache в общем случае хватит по уши.

Итого, Ubuntu на Windows 10, ccache уже установлен и используется при сборке:

sudo mkdir /mnt/ramdisk
sudo nano /etc/ccache.conf


cache_dir = /mnt/ramdisk
max_size = 512M

sudo nano /etc/fstab.conf


tmpfs /mnt/ramdisk tmpfs nodev,nosuid,noexec,nodiratime,size=512M 0 0

rm -rf ~/.ccache

orangepig

Подвисающий I2C

Одна из серьёзных проблем опенсорса, особенно опенсорс-эмбеддеда — многое разрабатывается в университетах, поэтому и отлаживается в условиях университетской лаборатории, в которой в прыжке есть двадцать плат по одному датчику на каждой.

В результате совершенно в общем-то довольно понятные в продакшене вещи часто реализуются примерно никогда.

Сегодня, скажем, добавили в драйвер I2C в RIOT OS буквально пять строчек: при инициализации I2C пощупать уровень SDA, если он 0, то подёргать туда-обратно SCL, пока SDA не станет 1.

Зачем?

Да элементарно: если ваша плата почему-то перезагрузилась в момент опроса датчика на I2C, оный датчик запросто может оказаться в состоянии, в котором он притягивает SDA к нулю и смиренно ждёт продолжения SCL, чтобы отдать оставшиеся битики, которые у него успели попросить перед перезагрузкой. Ждать он готов вечно, а вот тот же nRF52 такое состояние шины определяет — и передавать по ней ничего не спешит.

Результат — RIOT'овский драйвер I2C, который просто в цикле while ждёт EVENTS_STOPPED или EVENTS_ERROR (и нет, таймаута там тоже нет), в этом случае тупо глухо виснет навсегда. Вотчдог не помогает, потому что после перезагрузки всё снова встаёт в ту же позу.