Начинать программировать нужно с С++ или лучше даже с PHP.

Потом человек, как кот из приюта - всем рад.
Запишу сюда себе на всякий случай. Ну и вы почитайте. При любых проблемах с виртуализацией на ядрах 5.10+, особенно с продуктами VMWare, в первую очередь делать:

echo 0 > /proc/sys/vm/compaction_proactiveness
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

После чего гости начинают летать не хуже хоста.
- а у вас точно честный sync API под капотом?
- точно-точно, запускайте, не пожалеете!

(Zenoh, мои глаза...)
Если почитать стандарты IEC до 2000 года, такое впечатление что там работали наркоманы.

Например, широко используемый в энергетике протокол IEC 60870-5: "адрес базовой станции кодируется в один байт. но если одного байта не хватает, то в два". Это нужно предусматривать в прошивках и клиентах и переключать в конфигурации.

Так вот, вчера я видел три.
Forwarded from Блог*
Релизить что-то ентерпрайзно-системное под Rust - еще та специальная олимпиада. Если мой код обычно собирается с 1.65+ (когда завезли let-else, и то я не большой его любитель), то авторы популярных (в том числе специализированных) крейтов норовят всунуть чуть ли не nightly. А потом ноют, что люди не апгрейдятся.

Всё, Rust большой мальчик. Под PikeOS компилятор старше 1.68 не принимается. Ferrocene тоже сидят на 1.68 (кстати, забыл объявить, его уже сертифицировали под ISO 26262 и IEC 61508). Брать последнюю версию компилятора, чтобы писать код внутри компании - пожалуйста. Брать последнюю версию компилятора, чтобы релизить паблик-крейты - вас и вашу маму будут нехорошо вспоминать.

p.s. к слову, приличные люди всё уже фиксируют где-то на 1.65-1.68
Как я стал радиохакером.

Я, как полагается сапожнику без сапог, в лабе жил не с промышленным компьютером для BMS, а с обычным Raspberry Pi. Причина - у меня включала сигналку на выходе беспроводная кнопка на 433Mhz. Кнопку я сделал сам, перепробовав несколько вариантов и в конце-концов плюнув и купив обычный дверной звонок. После чего из звонящей части была выковыряна микросхема, напаян один транзистор, который переворачивал ногу на NPN (или наоборот, я уже и забыл) и вставлен прямо в GPIO. Кнопка потом (она же не секурная) обросла сложной логикой, которая учитывала датчики движения, картинки с камер и тд. но это уже другая история.

Поскольку приличные компьютеры GPIO не дают, а апгрейдиться хочется, я начал изучать матчасть. Чтобы подключить нечто неизвестное на 433Mhz, все приемники за 2$ можете сразу выбросить (тем более они тоже на GPIO), а купите лучше приличный свисток.

Матчасть. "Король цифровых приемников" - RTL-SDR Blog. Стоит 30$ (или 50 у барыг), ловит всё от 500kHz до 1.7GHz. Есть кит с антеннами, но в целом они не нужны (если вы не собираетесь ловить транспондеры пролетающих самолетов) - на небольшой кусок провода он прекрасно ловит всех в радиусе метров 50. После долгой настройки (долгой потому что есть секрет - V4 в линуксе нормально не работает, если вы поставили библы через apt, ставьте только свежие с сайта производителя) и изучения странных словечек типа "PLL error", я это завел и дело было только за софтом.

Самая большая комьюнити в инете по 433Mhz-устройствам тусит тут - https://github.com/merbanan/rtl_433. У пацанов в списке уже 257 популярных устройств и он постоянно пополняется. По крайней мере, все датчики от старых метеостанций, базы которых я давно выкинул, он подключил на раз. Включая соседские. Умеет писать в JSON, MQTT и даже сразу в Influx, если сильно надо.

Кнопок кстати в базе у них нету. Кнопка считается простым устройством, для которого радио-падаван должен разобрать протокол сам, перед посвящением в радио-джедаи.
Вышла Ubuntu LTS 24.04. Дидам (вроде меня) - подумать о переходе на 22.04 в ближайший год-два.
Недавно проверял код под виндой (нужно было с гуем) и вспомнил, чем меня так раздражает винда и некоторые оболочки иксов.

В i3, например, практически невозможно, чтобы программа выкинула тебе какой-то диалог и заблокировала ввод в другой программе. Если дело происходит на другом виртуальном экране, вы даже этот диалог не увидите, будет просто что-то мигать в статусбаре. Максимум у меня этим грешит GPG, но он к счастью редко что-то просит.

В винде ты постоянно отбиваешься от каких-то диалогов, которые лезут изо всех дыр. И каждое говно пытается себя после запуска тут же самостоятельно проапдейтить.
Вышел Rust 1.78. Из основных нововведений - стабильные diagnostic атрибуты, тоесть кастомнизация compile errors.

Уже вижу как зумеры покрывают все ошибки красивыми unicode-глифами и ломают совместимость крейтов со всем, кроме 1.78+

(закончил ворчать)
Идеальный syn-ack на Пасху в 2024
Beckhoff Automation, вход
Насчёт TwinCAT for Linux - да, официально и я даже сегодня щупал новые IPC с Linux и ARM, которые еще не вышли в продажу. Линуксячие машинки планируется продавать от 500 евро, что вполне сравнимо с мелкими конторами, которые обвешивают малинки гальванической изоляцией.

Собственно история печальна. Beckhoff давно очень хотел свалить с Шиндовс, промышленные компьютеры на винде становились неконкурентными и по фичам, и по цене из-за лицензии MS. Поэтому они начали миграцию на FreeBSD, которая была выбрана из-за своей лицензии и сделали много пропиетарных дополнений в ядро.

Но внезапно оказалось, что фря имеет очень ограниченный HCL и развивать линейку некуда. Поторговав несколько лет новыми IPC с "TwinCAT/BSD", Бекгофы начали миграцию на Linux. И теперь будут какое-то время тянуть три ветки, но думаю не потянут и фряху свою они рано или поздно убьют.

В Linux из-за лицензии пришлось извращаться и тянуть пропиетарщину в user space. В данный момент "инженеры Beckhoff заняты тем, что накладывают PREEMPT-RT патч на ядро, что должно быть доступно уже к концу года". Тем не менее, смех-смехом, но Linux с PREEMPT-RT официально объявляется realtime-enough, способной тянуть CNC с операциями до 10кГц.
Вчера еще в Beckhoff было забавно:

- мы наверное у вас сложные посетители, да? пришли тут со своими платформами, хотим интегрировать одно в другое...

- да вы понимаете, что делаете. а давеча на завод поставили конфигурацию, так там админ местный всю автоматизацию снаружи на питоне написал. а потом заебали нас, что мы говно и всё лагает
Внезапно выкатил релиз OWFS-биндингов под Rust, спустя 2 лет бетки. Из нового - при включении "vendored" умеет собрать libow из исходников сам.

OWFS - виртуальная файловая система поверх 1-Wire, наверное самый известный проект для этой шины за всё время её существования.

https://github.com/alttch/owfs-rs
Если вы издаёте свой дистрибутив Linux - обязательно напишите собственную систему конфигурации сетевых интерфейсов при загрузке.

Этого нет ни у одного конкурента, поэтому ваши пользователи будут счастливы, что у вас оно есть, ещё и in-house.
- А давайте настраивать log::LevelFilter через YAML
- А давайте!
- info
- passed
- warn
- passed
- error
- passed
- off
- SchemaValidationError: false is not one of ["trace","debug","info","warn","error","off"]
Плюс возраста - не надо тратить деньги. Решил пойти в модульные синтезаторы, достал из кладовки Dark Energy первой редакции.

Не совсем модульный, но почти. Может перебесимся малой кровью.
За неимением аналогового секвенсера, заинтересовался, играют ли вообще MIDI с ПЛК. Оказалось, конечно же очень даже играют. У тех же Beckhoff есть целый отдел, который занимается автоматизацией с мультимедией, внезапно они же разрабатывают под ПЛК и MIDI-интерфейсы.

Оно в принципе неудивительно - ПЛК с джиттером на 50-100нс справится с проигрыванием нот куда лучше, чем обычный DAW "на писюке", а точность воспроизведения вполне на уровне дорогих аналоговых моделей. Что касается цифровых секвенсеров - скорее всего в наши дни под капотом там и крутится какой-нибудь Linux. И довольно часто оно даже играет совсем не с Rust и C++, а с какого-нибудь, простите, питона.
2024/05/15 07:18:31
Back to Top
HTML Embed Code: