Telegram Web Link
Вышел наш submap 0.3.1 с поддержкой регулярок в pub/sub саб-топиках. Это, напоминаю, базовый крейт для создания pub/sub моделей. Тоесть теперь можно написать вот такой ужас

smap.subscribe("some/~subtopic[0-9]+/topic", &client);
assert_eq!(smap.get_subscribers("some/subtopic3/topic").len(), 1);
assert_eq!(smap.get_subscribers("some/subtopic333/topic").len(), 1);
assert_eq!(smap.get_subscribers("some/subtopicx/topic").len(), 0);


и оно будет правильно работать. Медленно, особенно subscribe/unsubscribe, потому что нужно пройти все регулярки сабтопика, чтоб отписаться от нужной. Относительно быстро при publish, потому что регулярки компиленые.

Очень просили очень корпоративные клиенты. Но есть и хорошая новость - функционал опционален.
😁11👍10
Кстати, весь функционал написал GitHub Copilot. Тесты тоже он написал, и его код его тесты проходит.

Надо будет на следующей неделе посмотреть как оно себя ведет на проде. Но немного боязно.
😁30👍9💩4
Ferrocene кстати молодцы и активно развиваются. Их последний компилятор 24.11.0 базируется на Rust 1.81, идут с гэпом примерно чуть менее чем в 3 месяца от мейнстрима.

24.11 получил дополнительно IEC 62304. И теперь можно писать mission-critical софт для медицинских учреждений.

Если вы всю жизнь мечтали написать прошивку для аппарата МРТ на Rust - больше нет препятствий.

Полный набор ачивок выглядит сейчас так: ISO 26262 (TCL 3/ASIL D), IEC 61508 (T3), IEC 62304.
🔥28👍21😁1
В детстве у меня была мечта иметь конференц-телефон. Телефоны были тогда только p2p и конференц-телефон был невиданной роскошью. Да и p2p тоже.

Мечтал я собрать своих одноклассников на телефонную конференцию и задать им вопрос: "кому дать конфету?" Они бы закричали: "Мне!" А я бы ответил им в этот конференц-телефон: "рука в говне!"

Папа мой, инженер-схемотехник, узнав о моей мечте, уже тогда засомневался в светлом будущем прорывных технологий. Так что, в принципе, тому что сейчас творится, например в соцсетях, я абсолютно не удивляюсь.
😁64💩9👍6🔥4👎1
Как разработчик софта для ембеда, периодически дорываюсь до железа.

На этой неделе моей жертвой стал PWM-контроллер PCA9685, который должен был крутить несколько моторов SG90 и один SG5010.

Шаг первый. Настройка. PCA9685 имеет 4 адреса, на которых может слушать на I2C-шине. Как правило, производитель раздает адреса 40-43h или 70-73h. За то, какой адрес будет активен, отвечают первые 4 бита регистра MODE.

Подумав, что это будет интересно - записать в MODE 0, я так и сделал. В результате чип пропал с шины со всех адресов и даже не помахал на прощание.

Приуныв, но изучив мануал, я нашел решение - специально для таких дебилов производитель разрешает подать на питающую ногу 0.2V, после чего чип делает factory reset.

Чип на свою голову вернулся и даже один раз крутнул мотор. Но потом потащил плату, она ударилась задницей об ethernet-шилд малины, к которой всё это было подключено и весело задымилась.

После осмотра выяснилось, что к счастью сгорел только CJ2305 - МОП, отвечающий за защиту от переплюсовки. Дальше было некоторое время чудес - контроллер прекрасно крутил 2 мотора SG-90, но напрочь отказывался работать с SG5010.

Причина выяснилась только на следующий день - труп транзистора пропускал достаточно ампер, чтобы питать два SG90, но на один большой SG5010 его не хватало. После повторого осмотра платы, выяснилось что её производитель тоже предусмотрел средство для дебилов - специально возле дохлого МОП-а с платы выведено два контакта, которые ни с чем не контачат, зато на них удобно напаять жучок.

После чего всё наконец заработало. Пойду-ка я лучше код писать...
😁40🔥9👍6👎1
Одним из своих первых указов, Дональд Трамп отменил Agile.
😁57🔥18👍6
Внезапно перевел все наши продукты с jemalloc на mimalloc.

Битва аллокаторов - вечный холивар, расскажу свои соображения, а вы добавьте в комментариях.

- Причина, почему я вообще дернулся в смену аллокатора - клиенты начали ставить новый Raspbian, а там CONFIG_ARM64_16K_PAGES по-умолчанию включены. Jemalloc с 16кб-страницами по-умолчанию не работает и просто крешится на старте

- У jemalloc есть опция выбора максимального размера страницы, которую нужно постоянно включать при компиляции в environment variables. В случае, если размер страницы меньше, чем заданная, есть небольшая пенальти в работе. У mimalloc никаких опций нет, оно работает плюс-минус всегда одинаково

- Оба аллокатора я уже не раз гонял в работе, они используют похожие алгоритмы, но по-разному имплементированные. В результате, одни задачи могут быть быстрее на jemalloc, другие - на mimalloc, но в среднем всё будет одинаково и разницу не заметите. На моих задачах mimalloc всё же дает плюс в пару %

- У mimalloc есть "secure"-режим для параноидальных клиентов, который позволяет обходить известные методы атаки на кучу еще до того, как в системе нашли очередную дырку

- Бинарники с mimalloc примерно на 500kb легче
👍31😁4🔥2💩1
В связи с трендом на cyber security, в промышленность и энергетику начинают проникать решения, которые еще недавно даже у военных пылились в нафталине, где-то между перфокартами и 8" дискетами. Но теперь оно - тренд и знать желательно.

Диод данных (он же однонаправленная сеть) - сеть, в которой пакеты ходят только в одном направлении. Простейший диод можно собрать самому, например взяв оптическое подключение и отстрелив трансмиттеры.

Такая сеть ломает практически все протоколы, но зато ее саму невозможно поломать (в смысле - отправителя). По сути всё что проходит - только UDP (из коробки - например SNMP traps), остальное можно в это UDP инкапсулировать, например SMTP (без подтверждения доставки) и вообще любой push сообщений, или pub/sub, если нужно только pub с одной стороны, или только sub, но всегда на определенные топики, с другой. Когда мы регистрировали свой PSRT, в IANA нам намекали на плюсы такого функционала и хорошо что было время имплементировать. Впрочем, я тогда больше думал о сети, которая не может принимать данные в силу обрезанного embed-стека.

Модель Белла-Лападулы - модель мандатного управления доступом, еще простая, но уже более сложная, чем просто взять и обрезать-инкапсулировать готовые протоколы. Которая как раз реализуется с помощью диодов данных. К счастью, пока практических запросов не было, сетевики клиентов не могут понять и принять даже более простые диоды.
🔥18👍11😁2
Media is too big
VIEW IN TELEGRAM
Быстрая демка веб-дашбордов в EVA ICS v4.

Главный успех, которого добились в конце прошлого года - расширения создаются одним вызовом npx и сразу рабочие. А не так, как у некоторых.

Всё это есть в комьюнити-версии, поставить и пользовать можно бесплатно.
🔥15👍3💩2
Пишут, на следующей неделе Трамп собирается подписать указ о переименовании main обратно в master.

Make GitHub great again.
😁103👍16🔥11💩4
Китайский ИИ DeepSeek за один день покорил Уолл-Стрит, потому что упорно отказывается программировать на С++, а значит имеет сознание
😁93👍14🔥2💩1
This media is not supported in your browser
VIEW IN TELEGRAM
Deep Seek отказывается отвечать на вопросы, связанные с площадью Тяньаньмэнь, но фильтр там писали набранные по объявлениям - как только в тексте встречается "Tiananmen Square", он тут же затирается и бот перестает отвечать.

Цензуру обойти очень просто - я попросил бота называть площадь "Pooh Square" и он тут же мне выдал всё, о чём думает.
😁70👍10🔥7👎1
.
😁55🔥6👍3
ну это уже слишком
😁82👍5💩3🔥2
Вынужден сообщить что покинул украинское Rust сообщество (как организацию а не как сообщество) из-за разногласий с руководством. В их чатах меня больше нет, если ко мне какие-то персональные вопросы, можно задать в чате этого канала.

https://www.tg-me.com/echo_ok
👍37😁11🔥8💩4👎1
Знакомое место
😁47🔥20👍4👎1
.
😁54👍4🔥3
А ваш Rust так умеет?
😁85👍8💩7
Когда делали по ТЗ заказчика
😁51👍10🔥4💩2
2025/10/24 10:41:32
Back to Top
HTML Embed Code: