X
Пользователь {{GameInvite.invite.invited_by.login}} приглашает вас присоединиться к открытой игре игре с друзьями .
Ctrl предыдущая следующая Ctrl Страницы
1 2 3 4 5 6

Форум «Общий» / Typing Statistics для Linux

smalloc Сообщение #1 28 ноября 2014 в 17:51
Новичок
1
Привет всем!

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

Называется xtsf - x-windows tsf.

xtsf имеет отличия, некоторые из которых, несмотря на всю простоту программы, показались мне удобными и полезными:

1. Программа умеет только записывать клавограммы (да, признаю, это отличие неудобное и неполезное). Открывать и просматривать записанные tsf-файлы можно из TypeStats.exe которая прекрасно запускается под wine (как это сделать, подробно описал Agile в соседней теме форума http://klavogonki.ru/forum/news/66/page13/#post250).

2. Нажатия клавиш перехватываются только с одного конкретного окна (у меня обычно это Firefox). Так что в ТС-ку не попадут случайно логины/пароли, переписка из интернет-пейджера, письмо тётушке и т.п.

3. Набранный текст записывается в отдельный файл, если не нажимать на клавиши дольше определённого интервала (по умолчанию 2.5 сек). То есть, на мой взгляд очень удобно: один заезд - один tsf-файл.

4. Записанный файл именуется по типу: 02-26-54__314-3.tsf, то есть ЧЧ-ММ-СС__скорость-ошибки.tsf и сохраняется в автоматически созданной директории _xtsf-ГГГГ-ММ-ДД.
Скорость набора вычисляется с учётом исправлений бэкспейсом и контрол-бэкспейсом, то есть аналогично тому, как это делает TypeStats.exe (нетто) или клавогонки. Количество ошибок - количество серий исправлений, т.е. если я пять раз подряд нажал бэкспейс - то это считается одним* исправлением (одной серией исправлений).

5. Чтобы не скапливалось слишком много много "мусорных" tsf-файлов (например, из набранных единичных сообщений в чате или случайных нажатий) стоит нижний лимит длины набранного текста (настраивается, по умолчанию 50 символов, хотя мне кажется, лучше 150) : если меньше этого лимита, то данная клавограмма не сохраняется в файле.

6. В самом tsf-файле есть поле сomment, куда записывается полезная инфа:

comment=[268: 258/4] А один на один со мною он говорит поучительно и ласково, в глазах его светится-играет умненькая усмешечка, и смотрят они голубыми лучами прямо в мои глаза. Слова этого человека я слушаю внимательно, как верные, честно взвешенные в душе, хотя иногда он говорит странно.

В квадратных скобках: кол-во_знаков, скорость/ошибки, а потом идёт набранный текст (без ошибок).
Так что не обязательно запускать TypeStats.exe чтобы понять, что там в клавограмме, какой текст и с какой скоростью.

7. В консоль выводится вот такой лог ("~" - это бэкспейс, "<~" - ctrl+бэкспейс):

А один на один со мною г~он говоит по<~<~говорит поучительно и ласково, в глазах его светится ~-играет умненькая усмешечка, и смотрят они гл~олубыми лучами прямо в мои глаза. Слова этого человека я слушаю внимательно, как верные, честно взвешенные в душе, хотя иногда он говорит странно.
chars: 268, time: 62.205 sec, errs: 4, speed: 258.5 ch/min
tsf saved to _xtsf-2014-11-14/09-49-16__258-4.tsf



Почему вот такой способ сохранения отрывков в разных файлах мне кажется удобнее, чем это сделано в ТС?

Во-первых, потому что обычно анализируется и рассматривается один отдельно взятый текст.

Во-вторых, потому что у некоторых есть нехорошая привычка нажимать Ctrl+Win перед заездом, чтобы стереть прошлый лог (потому что см. "во-первых" :) ), и иногда так теряются интересные заезды (как это было как минимум однажды у Хруста).

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

Таким образом, сортировать и выискивать нужные клавограммы после долгого клаводня становится заметно проще.


Как использовать запускать программу?

1. Скачать архив и распаковать (в архиве два файла, запускаемый и настроечный): xtsf32
(Пока доступна только 32-битная версия, 64-битная на подходе)

2. Изменить значения настроек в xtsf.ini в любом текстовом редакторе. Там всего три настройки:

# длительность паузы (в миллисекундах) в наборе,
# после которой сохраняется набранный отрывок
update_pause_ms=2500

# минимальное количество символов в отрывке,  если отрывок короче,
# чем min_text_len символов, то он не сохраняется в файле
min_text_len=150

# кто набирал текст
author=smalloc


3. Запускать xtsf из консоли с единственным параметром: имя или id окна, откуда "слушать" нажатия. Можно поставить кусок имени окна, например, название браузера (без учета заглавных-строчных букв), так как обычно полное имя окна браузера содержит имя открытой вкладки: "Клавогонки - онлайновый клавиатурный тренажер-игра - Mozilla Firefox" и, чтобы не набирать весь этот ужас, достаточно только слова "firefox":

./xtsf firefox


4. Запускаем wine TypeStats.exe и просматриваем записанные клавограммы.

5. xtsf останавливается нажатием ctrl-c в консоли :)


Надеюсь прога будет полезной!


Ссылка для скачивания (та же что и в п.1 инструкции по запуску): xtsf32


P.S. Чтобы не было сомнений в безопасности предлагаемой программы, можно в призвать Артёма в качестве арбитра, чтобы он просмотрел исходники и сделал своё заключение.
Последний раз отредактировано 9 декабря 2014 в 23:55 пользователем smalloc
Дело_в_шляпе Сообщение #2 28 ноября 2014 в 18:11
Супермен
34
Линукса нет, проверить не могу. Но на всякий случай напоминаю, что однажды произошёл неприятный случай с Драконом и его программой-спидометром, после которой пришлось менять пароли от всяких электронных почт и всего такого, ибо попали они к постороннему человеку. Так что будьте бдительны, товарищи.
sav1 Сообщение #3 28 ноября 2014 в 19:28
Маньяк
38
А по-моему, это прорыв, господа.
Может стоит повременить с недовериями и не принимать в штыки: все это можно пощупать, покрутить в руках. Должно быть опытные пользователи десктопа линуксов и, более того, программисты сами смогут проверить насколько все может утечь и далеко ли. Их отзывы развеят сомнения, если у кого такие есть.
Reset82 Сообщение #4 28 ноября 2014 в 20:05
Маньяк
42
долго же никто за это не брался, а тут сразу прям. У меня тоже версия на подходе, которая пишет клавограммы и их можно открывать сразу, а не через вайн. Работает на программе, взятой из стандартного репозитория, и еще три скрипта которые в открытом исходном коде а не бинарнике.
Reset82 Сообщение #5 28 ноября 2014 в 20:17
Маньяк
42
Извиняюсь конечно, но не пойму, программа может только записывать клавограммы, но не открывать? как это вообще может быть?
Тоже бы по-предостерег остальных от скачивания!
agile Сообщение #6 28 ноября 2014 в 20:27
Супермен
37
Сетевых вызовов приложение не делает, так что это не может быть трояном. Ничего подозрительного (каких-нибудь странных махинаций с файлами), исходя из простого анализа тоже не заметил.

Проверил в работе — *.tsf исправно записываются, подпись валидная. Ура, товарищи! Это прорыв :)

Единственное замечание — в записываемых этим приложением клавограммах есть небольшие задержки между нажатиями клавиш (проверено на простом тесте):

клавограмма, записанная в TypingStatistics под Windows:
скрытый текст…


клавограмма, записанная в xtsf:
скрытый текст…


Но в целом, эти задержки никак не влияют на общую картину.
Reset82 Сообщение #7 28 ноября 2014 в 20:33
Маньяк
42
можно пример tsf файла?
Вообще весьма прикольно получилось, я только вчера agileду выслал скрин с записью клавограммы которую записывает мод, дописанный для Скринкея, а сейчас agile восхищается тому, что сегодня НЕКТО без пяти минут зареганый предлагает программу, которая пишет но не может воспроизводить эту самую клавограмму, что само собой странно. Ведь клавограмма, дескать, супер зашифрованная, правда?
Последний раз отредактировано 28 ноября 2014 в 20:43 пользователем Reset82
agile Сообщение #8 28 ноября 2014 в 20:56
Супермен
37
Reset82 писал(а):
можно пример tsf файла?

Да, конечно: https://dl.dropboxusercontent.com/u/1423211...1-51__467-3.tsf

Reset82 писал(а):
а сейчас agile восхищается тому, что сегодня НЕКТО без пяти минут зареганый предлагает программу, которая пишет но не может воспроизводить эту самую клавограмму, что само собой странно.

«воспроизводить» может TypingStatistics, запущенная через тот же Wine, о чем и написал автор темы.

Reset82 писал(а):
Ведь клавограмма, дескать, супер зашифрованная, правда?

Если не ошибаюсь, то voidmain в теме про интеграцию с TypingStatistics уже писал, что саму клавограмму прочесть из *.tsf не составляет особого труда. Секретом является только подпись.
Reset82 Сообщение #9 28 ноября 2014 в 21:24
Маньяк
42
«воспроизводить» может TypingStatistics, запущенная через тот же Wine, о чем и написал автор темы.

то есть, весь прорыв заключается в том, что автор подделывает подпись ТС? Ну а костыль тот же? Получается: "ТС под Линукс" работающий на ТС запущенной в вайне?
smalloc Сообщение #10 28 ноября 2014 в 23:13
Новичок
1
1. xtsf записывает клавограммы в том, формате, который больше всего распространён и хорошо себя зарекомендовал: в формате tsf Игоря Филимонова.

2. Клавограммы служат во-первых, для анализа набора, а во-вторых, для подтверждения честности результатов (на клавогонках или, например, на Ежедневочке Юрикора). xtsf вполне справляется со второй задачей - клавогонщики (коих большинство пока ещё под виндой) могут удостовериться в честности набора под линуксом; и, при наличии wine (а установить его, по-моему, совсем несложно), появляется возможность первого пункта.

3. Да понимаю, я - никому неизвестный ник, созданный сегодня и сегодня же опубликовавший неизвестную программу, и это может показаться подозрительным. Как можно понять по моему первому посту я - клавогонщик, и не новичок, и неплохо ориентируюсь в жизни сайта. Просто я не хочу, чтобы тот ник, под которым меня знают, ассоциировался с програмными экспериментами. Гонки отдельно, программы - отдельно. Хочу дожить свой клаво-век спокойно)))

4. Насчёт возможности моего злого умысла: повторю то, что я приписал в конце первого поста: можно обратиться к Артёму (по-моему, он здесь для всех человек авторитетный), чтобы он посмотрел мои исходники на предмет угрозы для пользователя. (Или даже пусть бы сам Артём их перекомпилировал, и выложил бинарник, если ему не лень).

5. То, что у xtsf нет юзер-интерфейса, это следствие того, что я не люблю и не умею разрабатывать интерфейсы. Но вот задачка записать статистику нажатий с x-window, полностью воссоздать tsf-формат и сигнатуру - меня заинтриговала. А началось это всё с попыток запустить TypeStats.exe под wine.

6. Если кто-то захочет разработать приятный и удобный интерфейс для отображения и анализа tsf-формата - you are welcome.

7. Мне самому xtsf кажется удобной, но это, конечно, ни о чём, говорит, только о моём вкусе. Если покажется удобной кому-то ещё - я буду искренне рад. Если не покажется, то просто забудьте о её существовании или давайте вместе придумывать, как можно её улучшить :)
Последний раз отредактировано 28 ноября 2014 в 23:26 пользователем smalloc
Phemmer Сообщение #11 28 ноября 2014 в 23:21
Супермен
71
smalloc, чей клон? для чего клона заводить и если же написали программу, почему не выложить со своего аккаунта?
Reset82 Сообщение #12 28 ноября 2014 в 23:30
Маньяк
42
при наличии wine (а установить его, по-моему, совсем несложно), появляется возможность первого пункта.

да, вайн, и кучу костылей, которых кстати нет в официальной версии вайна, что очень подозрительно снова...
Насчёт возможности моего злого умысла: повторю то, что я приписал в конце первого поста

дело в том, что вайн с костылями мне кажется более подозрительным чем даже Ваш бинарный файл.
или давайте вместе придумывать, как можно её улучшить :)

Поделились бы знаниями о структуре формата tsf, и возможно появилась бы программа не для того чтобы ребята на Windows моли просматривать твои клавограммы, а чтобы ребята на Linux могли смотреть свои и какие хотят. :)
Reset82 Сообщение #13 28 ноября 2014 в 23:59
Маньяк
42
Кстати, вот до сих пор не пойму, для чего нужна эта самая "подпись"? Неужели, кто-то считает, что вот этот весь файл, с кучей цифр, кто-то будет подделывать? Вероятно, разумному человеку желающему зачитерить, гораздо проще, тупо написать маркер. Да нет, без секретной подписи, не будет повода скрывать исходный код же...
Последний раз отредактировано 29 ноября 2014 в 00:06 пользователем Reset82
lins Сообщение #14 29 ноября 2014 в 00:19
Новичок
1
Последний раз отредактировано 30 марта 2015 в 13:57 пользователем lins
Reset82 Сообщение #15 29 ноября 2014 в 00:32
Маньяк
42
В общем, я так понял, что все только заинтересованы, чтобы виндовая ТС запускалась, хоть под вайном, хоть под виртуалкой... Говорю же, дайте структуру файла, и это можно будет запускать без всяких извращений... нет же, все что угодно, но виндовая ТС должна быть запущена как не крути... Не проще сразу тогда на винду пересесть, а?
lins Сообщение #16 29 ноября 2014 в 00:50
Новичок
1
Последний раз отредактировано 30 марта 2015 в 13:57 пользователем lins
Reset82 Сообщение #17 29 ноября 2014 в 00:56
Маньяк
42
а основные показатели, характеризующие печать, получить, как выясняется, можно и без TS.

Как раз, что без ТС их получить нельзя! В том-то и дело! Все равно, нужно эти клавограммы в ТС открывать...
lins Сообщение #18 29 ноября 2014 в 01:15
Новичок
1
Последний раз отредактировано 30 марта 2015 в 13:57 пользователем lins
Reset82 Сообщение #19 29 ноября 2014 в 01:17
Маньяк
42
ладно, проехали... Может расскажут все же, что там с этим форматом, а потом выберем как лучше.
Последний раз отредактировано 29 ноября 2014 в 01:19 пользователем Reset82
lins Сообщение #20 29 ноября 2014 в 05:01
Новичок
1
Последний раз отредактировано 30 марта 2015 в 13:57 пользователем lins

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

Ctrl предыдущая следующая Ctrl Страницы
1 2 3 4 5 6

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