Как я понял, вторая часть вашего сниппета - это утрированный пример того, как выглядит аналог ржавому коду, если явно все проверки прописать. Так вот,
В расте итераторы есть и активно используются.
Как минимум - избавитесь от проверки i >= 0.
Да, значительная часть сишного кода такое не переживет. И да - реализации многих алгоритмов полагаются на то, что при переполнении будет выполнено приведение по модулю. И если они используют беззнаковый тип, то это не UB и 100% соответствие стандарту си.
Cистема типов и инварианты раста гарантируют, что data (из вашего примера) никогда не будет null. Соответственно - никаких rt проверок.
Просто так? Ничего против C или плюсов не имею. Но распробовав раст, возвращаться к ним не хочется.
Как минимум Redox написали…
И кстати, из любопытства погонял компилятор, так вот. Если первый пример кода на rust 1:1 переписать, то, при включенных оптимизациях
если N - константа, то цикл размотается вообще без проверок
если N - rt-переменная, то компилятор вынесет все проверки перед телом цикла
Но все это - такое себе. Компиляторы, конечно, нынче умные, но я не люблю на них в таких вопросах сильно полагаться. Здесь соптимизировал, там нет. И сиди гадай - где что.
Проверки целочисленного переполнения by default есть только в дебаг версии. В gcc можно с тем же успехом -fsanitize добавить, только оно по умолчанию отключено. (Кстати, а в ваших проектах есть -fwrapv, или живёте в мире UB?)
Если data не является сырым указателем то он имеет NonNull тип.
Если вы готовы зуб отдать, гарантируя что инварианты не будут нарушены - напишите unsafe блок, с get_unchecked
IPv6 Privacy Extensions (rfc4941) почти так и работает, только адрес обновляется периодически, обычно раз в сутки. И нацелен он больше на усложнение обнаружения количества устройств в конечной (пользовательской /64/56/48) сети. И на затруднение связывания разных сессий с конкретным устройствами. Ну, и отсутствие MAC адреса в публичном ipv6 тоже будет полезно...
Q: какие размеры? A: D12.1mm L32.6mm M: Не можем опубликовать ответ, который написан латинскими или заглавными буквами. Исправьте его и ответьте на вопрос ещё раз
Q: какой вес товара? A: 8 кг M: Не можем опубликовать ответ с матом или оскорблениями. Удалите их и ответьте на вопрос ещё раз
Это из личного опыта. Больше на вопросы с озона я не отвечаю xD
Вы уверены что на сайте актуальная карта зон? Посмотрите на https://skyarc.ru/ … Почти вся обитаемая территория РФ закрыта зонами "Установлена в рамках мероприятий по реализации Указа Президента Российской Федерации от 19 октября 2022 года № 757"
Вот я хочу наглухо изолировать камеру от интернета.
ИМХО, но VLAN + Virtual WLAN. Я так даже без IPv6 домашний IoT изолирую. На совсем примитивных SOHO, конечно, ловить нечего, но на routeros/openwrt/keenetic(?) можно все настроить.
два IPv6 - один постоянно меняется
"IPv6 Privacy Extensions" отключается через netsh, если очень нужно
киловаттный бп стоит не как два по 500вт, а гораздо дороже.
Вы уверены? Пробежался глазами по DNSу, если брать БП от одного производителя из одной серии, то два будут даже чуть дороже одного мощного. Мы же не собираемся ставить в GPU китайский драйвер для светодиодных лент за $10? Ну и отдельный БП для видео ≠ интегрированный в GPU PSU. Майнинг-фермы давно по несколько БП в одном юните используют и им норм.
Меня это тоже несколько удивило. Вообще, nS часто используется для обозначения кол-ва последовательных банок лития. Упомянутый здесь XT90, кратковременно, должен 100А вывести. Мне интереснее, что за контроллер для этого используется, ну и за подробностями к @kenomimi
Ну, бросьте уже. Идея про 230В на видяхе часто озвучивается, но это абсурд. Полноценный, качественный сетевой БП с активным PFC, защитами, изоляцией высоковольтной части — это сложное и дорогое устройство. Установленный на картах DC/DC step-down преобразователь, это лишь малюсенькая частичка от полноценного сетевого БП. Гораздо резоннее просто добавить новую линию на безопасных 24/48 вольтах в существующий БП, всё равно 12VHPWR, по-хорошему, требовал замены БП на совершенно новый. А на самих GPU даже step-down-конвертер мог бы почти не отличаться от сегодняшнего, разве что компоненты должны быть рассчитаны на более высокое напряжение. Ну и XT60/XT90 с нормальным, толстым, силиконовым проводом, здесь уже упоминались.
Пароль — четыре цифры, которые вы устанавливаете при открытии карты Ozon Банка. Он нужен для входа в Ozon Банк в приложении Ozon и на сайте Ozon Банка, а также для подтверждения оплаты покупок.
Сервисы-то доступны, а о проблеме я узнал от банка - когда пришла СМС, что Яша попробовал с карты деньги сверх лимита украсть…
Как я понял, вторая часть вашего сниппета - это утрированный пример того, как выглядит аналог ржавому коду, если явно все проверки прописать. Так вот,
В расте итераторы есть и активно используются.
Как минимум - избавитесь от проверки
i >= 0.Да, значительная часть сишного кода такое не переживет. И да - реализации многих алгоритмов полагаются на то, что при переполнении будет выполнено приведение по модулю. И если они используют беззнаковый тип, то это не UB и 100% соответствие стандарту си.
Cистема типов и инварианты раста гарантируют, что
data(из вашего примера) никогда не будет null. Соответственно - никаких rt проверок.Просто так? Ничего против C или плюсов не имею. Но распробовав раст, возвращаться к ним не хочется.
Как минимум Redox написали…
И кстати, из любопытства погонял компилятор, так вот. Если первый пример кода на rust 1:1 переписать, то, при включенных оптимизациях
если N - константа, то цикл размотается вообще без проверок
если N - rt-переменная, то компилятор вынесет все проверки перед телом цикла
Но все это - такое себе. Компиляторы, конечно, нынче умные, но я не люблю на них в таких вопросах сильно полагаться. Здесь соптимизировал, там нет. И сиди гадай - где что.
Люк, используй итераторы
И не используй знаковые типы для индексации
Проверки целочисленного переполнения by default есть только в дебаг версии. В gcc можно с тем же успехом -fsanitize добавить, только оно по умолчанию отключено. (Кстати, а в ваших проектах есть -fwrapv, или живёте в мире UB?)
Если data не является сырым указателем то он имеет NonNull тип.
Если вы готовы зуб отдать, гарантируя что инварианты не будут нарушены - напишите unsafe блок, с get_unchecked
Запустите на свежем ядре карту серии RX7000 с двумя+ мониторами без костылей и мерцания/артефактов экрана. Багу в drm/amd скоро два годика будет.
Теоретически, у нас есть DANE, построенный на DNS. Но, увы, в браузерах он не взлетел. Это могла бы быть хорошая, децентрализованная альтернатива CA.
А вот тут больше флагов
ipv6 адреса, сгенерированные через EUI-64 можно преобразовать обратно в MAC сетевого интерфейса
IPv6 Privacy Extensions (rfc4941) почти так и работает, только адрес обновляется периодически, обычно раз в сутки. И нацелен он больше на усложнение обнаружения количества устройств в конечной (пользовательской /64/56/48) сети. И на затруднение связывания разных сессий с конкретным устройствами. Ну, и отсутствие MAC адреса в публичном ipv6 тоже будет полезно...
Модерация ответов у озона и правда бредовая.
Это из личного опыта. Больше на вопросы с озона я не отвечаю xD
Вы уверены что на сайте актуальная карта зон? Посмотрите на https://skyarc.ru/ … Почти вся обитаемая территория РФ закрыта зонами "Установлена в рамках мероприятий по реализации Указа Президента Российской Федерации от 19 октября 2022 года № 757"
А как там Стрибог и Кузнечик поживают? С их якобы случайным S-Box?
ИМХО, но VLAN + Virtual WLAN. Я так даже без IPv6 домашний IoT изолирую. На совсем примитивных SOHO, конечно, ловить нечего, но на routeros/openwrt/keenetic(?) можно все настроить.
"IPv6 Privacy Extensions" отключается через
netsh, если очень нужноВы уверены? Пробежался глазами по DNSу, если брать БП от одного производителя из одной серии, то два будут даже чуть дороже одного мощного. Мы же не собираемся ставить в GPU китайский драйвер для светодиодных лент за $10? Ну и отдельный БП для видео ≠ интегрированный в GPU PSU. Майнинг-фермы давно по несколько БП в одном юните используют и им норм.
Hidden text
Меня это тоже несколько удивило. Вообще,
nSчасто используется для обозначения кол-ва последовательных банок лития. Упомянутый здесь XT90, кратковременно, должен 100А вывести. Мне интереснее, что за контроллер для этого используется, ну и за подробностями к @kenomimiВы сначала лицензию на разработку у ФСБ получите, потом продукт сертифицируйте - а там, глядишь, они и подумают, портить вам его или нет.
Подозреваю я, что "3S" — это три последовательные банки лития, то есть ≈11.1В.
Ну, бросьте уже. Идея про 230В на видяхе часто озвучивается, но это абсурд. Полноценный, качественный сетевой БП с активным PFC, защитами, изоляцией высоковольтной части — это сложное и дорогое устройство. Установленный на картах DC/DC step-down преобразователь, это лишь малюсенькая частичка от полноценного сетевого БП. Гораздо резоннее просто добавить новую линию на безопасных 24/48 вольтах в существующий БП, всё равно 12VHPWR, по-хорошему, требовал замены БП на совершенно новый. А на самих GPU даже step-down-конвертер мог бы почти не отличаться от сегодняшнего, разве что компоненты должны быть рассчитаны на более высокое напряжение. Ну и XT60/XT90 с нормальным, толстым, силиконовым проводом, здесь уже упоминались.
/b - безопасность
Смотрели?
keepass(xc) + syncthing