Information
- Rating
- 6,846-th
- Location
- Самара, Самарская обл., Россия
- Date of birth
- Registered
- Activity
Specialization
Десктоп разработчик, Бэкенд разработчик
C++
Assembler
Системное программирование
Разработка программного обеспечения
Многопоточность
Delphi
C
По технологии: почему у вас одно из значений base-префикса не используется (00)? Почему бы не сделать "repeating until the value is ≤ 4"?
"Decoding Steps" — как понять, что кодирование закончилось? Встретили мы единицу: это новый блок или terminator?
А вот тут совсем не понятно. Читаем до 1 единицы. Так, единица же в самом начале, почему мы должны читать ещё 11 нулей? Или у вас тут перевёрнуто?
Вам бы, конечно, несколько примеров привести. По паре штук хотя бы где только база, где +1 popcount, +2 popcount. И без опечаток.
И заодно интересно, как кодировать 0? Или мы работаем только с натуральными числами?
Да, с С/С++ кодом я немного поторопился, конечно :)
А целом компилятор
sum += a <= b ? addend : 0вполне нормально наcmovle/cmovgзаменяет.Это опечатка? Тут вроде 5.
Для условного перемещения есть
cmovcc(cselв ARM). Как вариант:Но это хуже, конечно, больше зависимостей и лишних операций.
Не проверял, но надеюсь, компилятор догадается (и тут нужно переделать без UB):
sum += (a <= b ? UINT_MAX : 0) & addend;Дружище, советую Qalculate! Несколько месяцев назад пересел на него, ибо задолбало автоматическое переключение режимов в NumLock Calculator (то 16-ричный включится, то режим Си), потом ещё запятая вместо точки. Единственный косяк — gtk-версия долго запускается. В итоге я написал мини-тулзу, которая прячет/показывает/активирует окно (могу скинуть с исходником, если надо). И в самом калькуляторе настроить клавиши переключения режимов dec-hex-bin в окнах ввода и результата. Доволен.
Ещё один классный калькулятор — Precise Calculator, но для постоянного использования не так удобен, зато быстро считает сколько угодно знаков (до и после запятой), можно использовать переменные и пр.
Это 3.143Dец! 🤦♂️
А из Shelter'а увидеть интерфейсы основного профиля можно?
Жесть, конечно. Я сначала даже усомнился, что Shelter реально пропускает прокси, но установил туда телегу, и она успешно подключилась через носки.
Вопрос про Amnezia. Я так понимаю, она пробрасывает SOCKS5 через порт 10808 только для Xray? А если используется AWG? Мне не удалось подключиться к телеге по этому порту. Ну и nmap -p- 127.0.0.1 ничего не выдаёт.
@runetfreedom, могли бы вы написать список приложений, которые прошли проверку и не содержат уязвимостей? Чем можно пользоваться сейчас? FlClashX тоже уязвим?
100%
Действительно. В этой редакции этот косяк исправлен.
Только зачем тут нужен публичный конструктор?
Чтобы не тратить драгоценные байты на
mov rdx,0xFFFFFFFF00000000(целых 10 байт), можно сделать например, вот так:Ещё вариант (чуть длиннее, но без доп. регистров):
Ну и до кучи вариант обнуления 31 младшего бита (не 32-х):
Есть множество способов обнулись регистр, например:
Иногда стоит использовать обе диаграммы, если место позволяет. Но мне часто не хватает понимания, на сколько % одно значение больше/меньшее другого. Например, сделали какой-то бенч. Получилось 90, 105, 120, 130. Хочется видеть разницу в % относительно, скажем, 120. Это редко когда пишут.
Ещё можно отдельную статью написать (мне даже кажется, что она уже была) о масштабировании диаграмм и графиков. Если мы рисуем эквалайзер, то логарифмическая шкала и плавающий низ — это ок. А вот когда какое-то значение отображается в диапазоне от 10 до 11 кривой по всей высоте (а низ тупо отрезается), то это очень мешает понимать реальное соотношение значений и глобальность измерения.
Сорян, первый сниппет на C++20 (
std::string_view::starts_with).Похоже, Дядюшке Бобу пора пить таблетки перед написанием книги :))
Повторю (перефразируя) коммент под предыдущей статьёй: в многопоточном коде, если разные потоки будут использовать один экземпляр класса, любовь к манипуляциям с переменными объекта приведёт к большим проблемам.
Не претендую на идеальность, но код из книги явно можно сделать проще и понятнее, например, так (C++17):
Ну или так (
unordered_mapздесь не нужен, только усложнит код):На лапки — их больше.
Мысль убрать else, конечно, хорошая, но глобально это не повлияет на результат. Оптимизатор всё равно уберёт else (и даже если отключить оптимизацию, то может быть будет лишний прыжок после return, который всё равно недостижим). При этом какой код читабельнее — вопрос спорный.
Я бы ещё добавил тот факт, что если вдруг кто-то захочет использовать один экземпляр такого чудесного класса дядюшки Боба в нескольких потоках, его ждёт сюрприз :)
P.S. Да, книжка вызвала много вопросов и сомнений.
Меньше ветвлений для значений > 1, отрицательное значение обрабатывается как ноль (это можно сделать контрактом).
Когда налог на бороду уже введут? Или пока рановато?