[{{mminutes}}:{{sseconds}}] X
Пользователь приглашает вас присоединиться к открытой игре игре с друзьями .

Форум «Предложения и пожелания» / Сделайте запись клавограммы средствами браузера

MMMAAANNN Сообщение #1 16 января 2017 в 22:16
Супермен
36
  • Это достаточно легко реализуемо (даже я со своими любительскими навыками сумел нечто подобное реализовать в виде юзерскрипта - правда, после изменений в движке сайта на данный момент скрипт не работает).
  • Это дает свободу клавогонщикам в выборе ОС при желании записывать и анализровать клавограммы (TS работает только в Windows).
  • Это позволит наблюдать важные и интересные параметры набора текста (прежде всего - чистую скорость, она же брутто*) с гораздо большим удобством, без необходимости переключения между программами.
  • Это обеспечит дополнительную нативную защиту от читеров - или, по крайней мере, документирование потенциально читерских действий.
  • Это открывает множество направлений для дальнейшего использования многогранной статистики, которую позволят собирать клавограммы (чистая скорость и потери от опечаток; паузы при конкретных двубуквенных/трехбуквенных и др. сочетаниях; самые быстрые и самые медленные слова; типы опечаток; время удерживания и пр.).

Ссылки по теме:
Последний раз отредактировано 16 января 2017 в 22:26 пользователем MMMAAANNN
un4given Сообщение #2 17 января 2017 в 12:33
Клавокодер
122
Помимо всего прочего это позволит подделывать результаты аж бегом.
Переборыч Сообщение #3 17 января 2017 в 12:55
Клавомеханик-Организатор событий
55
Полагаю, вместо JavaScript, лучше использовать Java.
MMMAAANNN Сообщение #4 18 января 2017 в 01:09
Супермен
36
un4given писал(а):
Помимо всего прочего это позволит подделывать результаты аж бегом.

Далеко не факт. Все зависит от продуманности системы записи клавограмм. Кроме того, "подделанные" заезды в идеале будут автоматически записаны, после чего могут быть расследованы и предъявлены как доказательство мошенничества с вытекающими последствиями.
Voronov Сообщение #5 18 января 2017 в 03:05
Кибергонщик
54
В качестве анализа своей статистики можно, как средство защиты от читеров - нет.
Кроме того, "подделанные" заезды в идеале будут автоматически записаны, после чего могут быть расследованы и предъявлены

и кто этим заниматься будет?
Fenex Сообщение #6 18 января 2017 в 05:42
Клавомеханик
49
Делать какую-то подобную защиту на JS довольно бестолковое занятие, т.к. к данным на странице имеют абсолютно одинаковый доступ как скрипты сайта, так и пользовательские. Более того, пользовательские даже имеют преимущество, потому как запускаются позже и могут манипулировать не просто данными, но и подменять конкретные необходимые функции. Вообще, по-хорошему все неквалификационные результаты априори нельзя считать достоверными, увы.

Именно как ещё одно средство для анализа набора и различной статистики пожалуй интересно было бы заиметь - и наверное как раз имеет смысл делать тулзу как расширение браузера. В таком случае можно анализировать не только набор на клавогонках, не будет привязанности к коду КГ: расширение будет всегда работать.

Однако тут ещё надо изучить вопрос насчёт точности измерений JS. На слабых компьютерах вполне возможны микроподвисания: JS то всё таки однопоточный и интерпретируемый, а кода везде навалом, куча обработчиков и всё постоянно работает. Поэтому клавограмма на выходе может быть не точной. Но это надо проверять :)
Последний раз отредактировано 18 января 2017 в 05:48 модератором Fenex
MMMAAANNN Сообщение #7 18 января 2017 в 12:49
Супермен
36
Fenex писал(а):
Однако тут ещё надо изучить вопрос насчёт точности измерений JS. На слабых компьютерах вполне возможны микроподвисания: JS то всё таки однопоточный и интерпретируемый, а кода везде навалом, куча обработчиков и всё постоянно работает. Поэтому клавограмма на выходе может быть не точной. Но это надо проверять :)

По опыту применения написанного мной расширения (работало только в Хроме, не уверен насколько слабые компьютеры были у других пользователей) - результаты с очень высокой точностью совпадали с данными параллельно запущенной TS. Мне не удалось воспроизвести ситуацию, когда замеры пауз между нажатиями были бы неточными из-за того, что использовалось расширение на базе джаваскрипт, в сравнении с TS. Так что невозможность точно мерять паузы между нажатиями средствами браузера на современном этапе мне неочевидна, и с большой вероятностью просто старый миф. Просто паузы нужно мерять между соответствующими событиями - keydown или keypress, а не keyup. Еще браузерные клавограммы потенциально могут записывать другие важные события - например, потерю фокуса, что тоже позволит более точно измерять чистую скорость (по сравнению с TS, которая не может знать ни исходного текста, ни где находится фокус на странице браузера, ни состояния поля ввода и перемещения курсора внутри него).
agile Сообщение #8 18 января 2017 в 13:25
Новичок
37
MMMAAANNN писал(а):
По опыту применения написанного мной расширения (работало только в Хроме, не уверен насколько слабые компьютеры были у других пользователей) - результаты с очень высокой точностью совпадали с данными параллельно запущенной TS. Мне не удалось воспроизвести ситуацию, когда замеры пауз между нажатиями были бы неточными из-за того, что использовалось расширение на базе джаваскрипт, в сравнении с TS.

На марафонах тоже проверяли? Вообще говоря, движок V8 хрома при возможности всегда оптимизирует часто вызываемые функции. В его профилировщике не смотрели работу своего скрипта? И что насчет FireFox?

MMMAAANNN писал(а):
Еще браузерные клавограммы потенциально могут записывать другие важные события - например, потерю фокуса, что тоже позволит более точно измерять чистую скорость (по сравнению с TS, которая не может знать ни исходного текста, ни где находится фокус на странице браузера, ни состояния поля ввода и перемещения курсора внутри него).

Угу, а еще браузер может с таким же успехом и «потерять» некоторые события, если нажатая комбинация клавиш была перехвачена на уровне выше.
MMMAAANNN Сообщение #9 18 января 2017 в 13:26
Супермен
36
Voronov писал(а):
В качестве анализа своей статистики можно, как средство защиты от читеров - нет.
Кроме того, "подделанные" заезды в идеале будут автоматически записаны, после чего могут быть расследованы и предъявлены

и кто этим заниматься будет?

Да те же, кто сейчас этим занимается. Я предлагаю использовать эти данные для проверки сомнительных высоких рекордов, например. Сколько было рекордсменов, которые "не умеют" пользоваться TS, например? А если эта функция будет встроенной и данные о событиях нажатия будут записаны для каждого заезда, всегда найдутся желающие проверить достоверность внезапного нового рекордсмена сайта - только дайте им инструмент для анализа такой клавограммы.

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

А еще клавограммы смогут автоматически определять и локализовать использование автозамен, например.
MMMAAANNN Сообщение #10 18 января 2017 в 13:31
Супермен
36
agile писал(а):
MMMAAANNN писал(а):
По опыту применения написанного мной расширения (работало только в Хроме, не уверен насколько слабые компьютеры были у других пользователей) - результаты с очень высокой точностью совпадали с данными параллельно запущенной TS. Мне не удалось воспроизвести ситуацию, когда замеры пауз между нажатиями были бы неточными из-за того, что использовалось расширение на базе джаваскрипт, в сравнении с TS.

На марафонах тоже проверяли? Вообще говоря, движок V8 хрома при возможности всегда оптимизирует часто вызываемые функции. В его профилировщике не смотрели работу своего скрипта? И что насчет FireFox?

MMMAAANNN писал(а):
Еще браузерные клавограммы потенциально могут записывать другие важные события - например, потерю фокуса, что тоже позволит более точно измерять чистую скорость (по сравнению с TS, которая не может знать ни исходного текста, ни где находится фокус на странице браузера, ни состояния поля ввода и перемещения курсора внутри него).

Угу, а еще браузер может с таким же успехом и «потерять» некоторые события, если нажатая комбинация клавиш была перехвачена на уровне выше.


По моему опыту использования скрипта - браузер практически ни разу не терял событий без причины и практически всегда с высокой точностью паузы между событиями соответствовали TS (расхождения были минимальными, меньше миллисекунды, кажется, для наших целей - ничтожными). В FireFox на момент моей работы над скриптом события клавиатуры записывались в другом виде, у меня не хватило времени и квалификации адаптировать их для использования в скрипте - но потенциально это тоже решаемо. Марафоны тоже писало нормально.

Возможно, скрипт и сейчас отчасти работает - мне нужно проверить, давно не катался на клавогонках. "Отчасти" в том смысле, что пишет клавиатурные события в объект, но функции анализа этой записи и отображения ее сейчас полностью поломаны.
MMMAAANNN Сообщение #11 18 января 2017 в 13:36
Супермен
36
Еще о безопасности - данные клавограммы, помимо прочего, можно отсылать на сервер не в конце набора, а чуть ли не после каждого набранного символа или после каждого набранного слова, что может существенно затруднить фальсификацию набора.
MMMAAANNN Сообщение #12 18 января 2017 в 13:41
Супермен
36
agile
Сейчас проверил - скрипт пишет события вполне успешно в объект Keybographer.keybogram , доступный в консоли Javascript, а вот анализ и отображение результатов на странице поломаны. Можете попробовать сами, насколько стабильно записываются события и насколько точны паузы между событиями в сравнении с TS.
MMMAAANNN Сообщение #13 18 января 2017 в 15:03
Супермен
36
Fenex писал(а):
и наверное как раз имеет смысл делать тулзу как расширение браузера. В таком случае можно анализировать не только набор на клавогонках, не будет привязанности к коду КГ: расширение будет всегда работать.

Это неплохая модель, но тут есть поводные камни. Во-первых, такое расширение вероятно будет записывать весь ввод с клавиатуры на всех сайтах, что может быть небезопасно в отношении паролей, личной и конфиденциальной информации; вряд ли будет легко зарегистрировать такое расширение в официальном магазине расширений браузера и т. п. Во-вторых, я предлагаю не прсото записывать клавограмму локально и показывать ее результаты одномоментно, но также сохранять эти результаты на сервере клавогонок, чтобы можно было оценить развитие параметров клавограммы во времени, а также оценить клавограмму/параметры любого прошлого заезда, а также сравнивать свои параметры с параметрами других игроков. Средствами одного лишь расширения реализовать это, мягко говоря, затруднительно, тут нужен серверный механизм. В идеале вообще использовать браузер только для регистрации точного времени событий и отправлять их на сервер - а уже сервер может считать параметры, строить графики и пр. - чтобы уменьшить возможности фальсификации параметров со стороны пользователя.
Последний раз отредактировано 18 января 2017 в 15:05 пользователем MMMAAANNN
kasiveyser Сообщение #14 19 января 2017 в 10:41
Гонщик
31
Скрипт работал отлично во всех режимах, и имеет большой потенциал для развития аналитики на сайте.

Чтобы писать в форуме, нужно зарегистрироваться.


Связаться
Выделить
Выделите фрагменты страницы, относящиеся к вашему сообщению
Скрыть сведения
Скрыть всю личную информацию
Отмена