Вроде Как я это исправил с помощью mt19937_64 и uniq_distribution. При стресс-тестах на set и unordered_set повторов (во всех смыслах) отловить не удалось.
Хрестоматийный пример сложной простоты это случайное число, и где нибудь в джаве или пайтоне вы просто напишете random.randint(1, 100) и пойдёте дальше кодить, но не здесь. Это слишком просто, чтобы быть правдой.
А сам random_device стандарт разрешает делать детерминированным и на старом MinGW он годами выдавал одну и ту же последовательность при каждом запуске, то есть длинная корректная мантра в реальности и длинная и коррекная, но не везде работает, хоть rand() % 100 и короче и хотя бы работает.
Принцип работы следующий: все клавиши печатают как обычно, но некоторые печатают типичные для программирования символы при удерживании Alt: Alt+N -> (, двойной Alt+N -> [ и удерживая Alt+N 300мс+ вы напечатаете блок кода с фигурными скобками { }и переносом строк.
Полный список зарегистрированных клавиш доступен ниже в секции allApps. пример:
allApps.add("<!sc031", LAlt_N_AllApps)
allApps.add("<!sc032", LAlt_M_AllApps)
LAlt_N_AllApps(taps, state) {
if (state = -1) {
if (taps = 1)
return SendChars('(')
SendChars('[')
} else if !state {
SendChars('+[')
if (taps = 1)
return
SendEvent('{Enter 2}')
SendEvent('{Up}')
SendEvent('{Tab}')
}
}
Здесь callback имеет state -1 если клавиша нажата, 1 если удерживается и 0 если отпущена. taps представляет собой количество нажатий. Можно просто быстро два раза нажать, а можно быстро нажать и удерживать, в этом случае taps == 2 и state == 1
Я в некоторых сборках это глобальный параметр, на который опираются все процессы. Его измнение может привести к отдаленным последствиям.
Если вы всё-таки хотите его изменить, необходимо протестировать, какие конкретно значения оптимальны для ваших задач и для вашей ОС
Нет универсальных или общих значений, они могут только испортить вашу работу. Вместо изменения этого параметра лучше вообще пойти другими путями.
Нужно стремиться не к уменьшению таймера, а к уменьшению прерываний процессора, к уменьшению его переключений между процессами.
Для этого нужно работать и с параметрами реестра, и с приоритетами, и отключать ненужные службы и много чего ещё. Это огромная и тонкая работа, по которой еще никто не написал подробную статью. Я когда-то хотел, но потом передумал: умный пользователь сам найдет свой правильный путь, а ленивый –проследует по чужому пути и упадёт в заготовленную яму.
Фантастика! Но я перестал писать на Python и перешёл на AutoHotkey из-за возможности работать с WinApi напрямую. Плюс язык pprototype-based. И вот тут вообще нет никаких типов, хорошо хоть под капотом один тип не преобразовывается тайно в другой, как в JavaScript:
encapsulate() {
static API_CONST := 0x008
...
API_CONST := 12 # nah we'll just ignore it
}
Хотя бы проблемы вроде "прочитал новый паттерн ООП и внедрил его на уоовне 1970 года" тут случаются редко, потому что язык дает очень много возможностей написать все в число процедурном стиле. А классы использовать в основном без интерфейсов и абстрактных методов, просто потому что здесь нет типов (а следовательно костыли из интерфейсов не нужны)
`ClipWait` лучше ставить на 1+ секунду, так как это верхняя граница времени ожидания. Более того, временами буфер обмена может быть закрыт для чтения, поэтому лучше опрашивать ее в цикле (polling) и сохранять `A_Clipboard` в любую переменную до восстановления содержимого `A_Clipboard := backup`. Сразу после – восстановить содержимое:
Ряд доменов из MEGA SDK, через которые идет маршрутизация при загрузке файлов *не-из-web-клиента*, заблокированы или недоступны на территории РФ. Тихо. Без огласки. Более того, оплата Mega официально недоступна на территории РФ.
К слову о текучке кадров: как она продвигается в 2026-м (спустя 4 года)?
Вроде Как я это исправил с помощью mt19937_64 и uniq_distribution. При стресс-тестах на set и unordered_set повторов (во всех смыслах) отловить не удалось.
Я попытался это исправить типо-безопасной библиотекой.
Может и есть, но её автор спустя годы кругов придет к той же архитектуре, просто за большее время.
В autohotkey такая архитектура, причем всё есть объект; в PyWidgets такая архитектура; в Django и т.п.
Как правильно написано в начале, меняется кодогенерация, а идея остаётся прежней.
Опять?
Если вам не страшен Autohotkey код, попробуйте моё решение (документация не прилагается): https://pixeldrain.com/u/J9r9TV1V
Принцип работы следующий: все клавиши печатают как обычно, но некоторые печатают типичные для программирования символы при удерживании
Alt:Alt+N->(, двойнойAlt+N->[и удерживаяAlt+N300мс+ вы напечатаете блок кода с фигурными скобками{ }и переносом строк.Полный список зарегистрированных клавиш доступен ниже в секции allApps. пример:
Здесь callback имеет
state-1 если клавиша нажата, 1 если удерживается и 0 если отпущена.tapsпредставляет собой количество нажатий. Можно просто быстро два раза нажать, а можно быстро нажать и удерживать, в этом случаеtaps == 2иstate == 1А какие есть адекватные расширения?
О, я тоже пишу скрипты на AHK :D Буду рад сотрудничеству: https://github.com/JoyHak
У меня есть два репозитория модов к нему:
https://github.com/JoyHak/Vivaldi-CSS-mods
https://github.com/JoyHak/customize-vivaldi-buttons
Исправил тут: https://www.autohotkey.com/boards/viewtopic.php?f=83&t=140529&p=617670#p617670
Исправил тут: https://www.autohotkey.com/boards/viewtopic.php?f=83&t=140529&p=617670#p617670
Данный код не учитывает проблемы с задержкой, из-за которой вводимые символы не соответствуют раскладке клавиатуры какое-то время после переключения. Исправил тут: https://www.autohotkey.com/boards/viewtopic.php?f=83&t=140529&p=617670#p617670
...и ни одной интересной статьи про него за последние годы.
Отдельным комментарием отмечу:
Хорошо что автор не стал менять
TdrDelayиTdrDebugMode, иначе с такими общими значениями он бы положил компьютеры всех, кто вслепую поставил твикер.Нет критических параметров для отключения фиксов уязвимостей процессора Spectre и Meltdown:
Наверное стоит полностью отключить Hyper-V в биос и Core Isolation если вам нигде не нужна виртуализация и вы не используете виртуальные машины:
Я бы рекомендовал почитать дискуссии прежде чем менять Timer Resolution:
Я в некоторых сборках это глобальный параметр, на который опираются все процессы. Его измнение может привести к отдаленным последствиям.
Если вы всё-таки хотите его изменить, необходимо протестировать, какие конкретно значения оптимальны для ваших задач и для вашей ОС
Нет универсальных или общих значений, они могут только испортить вашу работу. Вместо изменения этого параметра лучше вообще пойти другими путями.
Нужно стремиться не к уменьшению таймера, а к уменьшению прерываний процессора, к уменьшению его переключений между процессами.
Для этого нужно работать и с параметрами реестра, и с приоритетами, и отключать ненужные службы и много чего ещё. Это огромная и тонкая работа, по которой еще никто не написал подробную статью. Я когда-то хотел, но потом передумал: умный пользователь сам найдет свой правильный путь, а ленивый –проследует по чужому пути и упадёт в заготовленную яму.
Сам сгенерировал или кто помог?...
Фантастика! Но я перестал писать на Python и перешёл на AutoHotkey из-за возможности работать с WinApi напрямую. Плюс язык pprototype-based. И вот тут вообще нет никаких типов, хорошо хоть под капотом один тип не преобразовывается тайно в другой, как в JavaScript:
И нету констант нигде:
Хотя бы проблемы вроде "прочитал новый паттерн ООП и внедрил его на уоовне 1970 года" тут случаются редко, потому что язык дает очень много возможностей написать все в число процедурном стиле. А классы использовать в основном без интерфейсов и абстрактных методов, просто потому что здесь нет типов (а следовательно костыли из интерфейсов не нужны)
`ClipWait` лучше ставить на 1+ секунду, так как это верхняя граница времени ожидания. Более того, временами буфер обмена может быть закрыт для чтения, поэтому лучше опрашивать ее в цикле (polling) и сохранять `A_Clipboard` в любую переменную до восстановления содержимого `A_Clipboard := backup`. Сразу после – восстановить содержимое:
Я нашел тот самый пост с Moltbook: https://www.moltbook.com/post/cbd6474f-8478-4894-95f1-7b104a73bcd5
А еще я нашел вот это: https://www.reddit.com/r/vibecoding/comments/1qu96qe/the_ai_lobsters_are_taking_over_and_they_started/
Ряд доменов из MEGA SDK, через которые идет маршрутизация при загрузке файлов *не-из-web-клиента*, заблокированы или недоступны на территории РФ. Тихо. Без огласки. Более того, оплата Mega официально недоступна на территории РФ.