[{{mminutes}}:{{sseconds}}] X
Пользователь приглашает вас присоединиться к открытой игре игре с друзьями .
Ctrl предыдущая следующая Ctrl Страницы
1 2 3 4 5 6 7 8 9 10 11

Форум «Программное обеспечение» / Немножко простейшей КлавоСтатистики :)

nosferatum Сообщение #101 26 декабря 2020 в 09:01
Супермен
35
Спасибо за позитивные отзывы, друзья.

Следующий «подарок» будет для Doctorisimus. Сделано по его идее.

Добавлена страница с диаграммой числа игроков по рангам, на которой можно выбирать диапазон пробега фильтром на странице.

  • Задача — https://github.com/dmitry-weirdo/kgparser/issues/35.
  • !!! Первая загрузка этой страницы будет идти долго, так как будет подгружаться 2,3 Мб js-файл с данными. После этого этот файл должен закэшироваться у вас локально, и загрузка дб быстрой.
  • Для минимализации размера страницы выгружены только юзеры с минимальным пробегом в 1 текст. Считаю, что юзеры с 0 текстом особого интереса не представляют, т.к. они всегда в ранге «Новичок».
  • Можно оставлять поля пустыми, тогда для минимума будет взят 1, а для максимума ограничения не будет.
  • Сообщения о неверном вводе сделаные тривиальными алёртами, аналогично вводу несуществующего юзера в поле поиска в большом топе. Если хотите подправить на что-то покрасивей — Herzlich Willkommen в проект!
  • Все бар-чарт диаграммы (на главной тоже) теперь начинаются с 0 по оси X.
  • На главной странице рядом со свитчером, после «Все сразу» добавлена ссылка на эту страницу. Также ссылка есть и в хэдере.
  • Имхо, страница получилась на самом деле информативно осмысленной, как и предполагал Doctorisimus. Можно выбрать, например, фильтр от 1 до 100 или от 1 до 1000 и убедиться, насколько минимальна конверсия новых игроков в постоянных. Также идея Doctorisimus заключалась в том, что с помощью фильтра «от N до M текстов» можно эвристически предсказывать ранг, который у тебя может быть в этом диапазоне. Словом, на основе подобной статы можно делать какие-то более уже сложные выводы, то есть выборку/аналитику второго порядка. Если есть идеи, как это автоматизировать, предлагайте их.


Прочие мелочи
  • В заголовок добавлена ссылка на эту тему.
  • На GitHub заполнена секция About. Проставлен топик klavogonki, который позволяет найти проекты по топику вот так — https://github.com/topics/klavogonki.
  • В списке задач расставлены некоторые лейблы. Вообще крайне рекомендую заходить туда и смотреть, что происходит/планируется, а также дополнять/комментировать задачи.
  • На ГитХабе достучался до Fenex-а, но про 500-юзерные эндпойнты он тоже не в курсе, увы :(
  • Также создал задачу о косметических изменениях, которые мне хотелось бы заапрувить с коммьюнити, прежде чем делать. Заходите и комментьте :)
Последний раз отредактировано 4 января 2021 в 01:49 пользователем nosferatum
nosferatum Сообщение #102 28 декабря 2020 в 00:19
Супермен
35
Чтобы не забыть — запрос от gluckss2 — сделать топ по общему времени набора, то есть для каждого игрока сложить haul по всем словарям и по убыванию этой суммы. Будет работать только для игроков с открытой статистикой.

Задачу на ГитХабе сделаю.
nosferatum Сообщение #103 28 декабря 2020 в 06:34
Супермен
35
Параллельная загрузка данных (f*ck yeah!)

Задача — https://github.com/dmitry-weirdo/kgparser/issues/26

Запустил загрузку данных для всех игроков: playerId in [1; 628000], запуск в 100 тредах. Результат впечатляет:

2020-12-28 01:44:43.301 [main] DEBUG ru.klavogonki.kgparser.PlayerDataDownloader - executorService.awaitTermination executed.
2020-12-28 01:44:43.302 [main] INFO  ru.klavogonki.kgparser.PlayerDataDownloader - Threads used: 100
2020-12-28 01:44:43.302 [main] INFO  ru.klavogonki.kgparser.PlayerDataDownloader - Download start date: 2020-12-28T00:28:13.015289
2020-12-28 01:44:43.302 [main] INFO  ru.klavogonki.kgparser.PlayerDataDownloader - Download end date: 2020-12-28T01:44:43.302081
2020-12-28 01:44:43.302 [main] INFO  ru.klavogonki.kgparser.PlayerDataDownloader - Downloading data for players [1; 628000] (total 628000 players) took:
2020-12-28 01:44:43.302 [main] INFO  ru.klavogonki.kgparser.PlayerDataDownloader - Hours: 1
2020-12-28 01:44:43.302 [main] INFO  ru.klavogonki.kgparser.PlayerDataDownloader - Minutes: 76
2020-12-28 01:44:43.302 [main] INFO  ru.klavogonki.kgparser.PlayerDataDownloader - Seconds: 4590


Иными словами, сравнение:
Первая загрузка данных
  • 2 запроса на игрока
  • 625 000 игроков
  • Итого: 1 250 000 запросов
  • Запуск в 1 треде
  • Время загрузки: 37 часов 48 минут 54 секунды


Вторая загрузка данных
  • 3 запроса на игрока
  • 628 000 игроков
  • Итого: 1 884 000 запросов
  • Запуск в 100 тредах
  • Время загрузки: 1 час 16 минут 30 секунд


ТЕКУЩИЕ ВЫВОДЫ
  • Принципиально можно статистику обновлять хоть ежедневно, даже с текущими небатчевыми запросами по 1 игроку. Вопрос только в стоимости вычислительных мощностей и стоимости деплоя и хостинга самого приложения.
  • Закачаны данные со страницы статистики (запросы вида http://klavogonki.ru/api/profile/get-stats...?userId=242585). Это позволит сделать топы по словарям. Но потерпите, ещё нужно довольно много времени — распарсить и залить в БД эти данные, далее сгенерировать топы (отдельный вопрос про различные сортировки по тем же данным — это ещё совсем новая задача, решаемая, но нужно время). Юзеры, которые скрыли свою стату, в топы по словарям не попадут.
  • Обновить текущую версию топа новыми данными я могу прям в ближайшие дни, в ней уже всё неплохо автоматизировано (хоть и запускать нужно несколько шагов по отдельности). Ссылки на старый топ и вообще какой бы то ни было ретро-истории не будет.
  • Весь процесс в один пайплайн целиком пока, конечно, не автоматизирован. Но это идеальное видение я уже описал в вики. К нему надо стремиться.
  • Затрачено уже много рабочих человекодней, но зато будущее внушает оптимизм. Так что самое время задонатить тем, кто ценит мою работу :)

nosferatum Сообщение #104 28 декабря 2020 в 09:00
Супермен
35
Чтобы не забыть — помимо билингвального топа, есть запрос на сделать суммарную таблицу по упражнениям Хруста

Что-то вроде https://klavogonki.ru/forum/academy/297/page21/#post406 или https://skr.sh/s5qf26awFU4



TODO: требования нужно собрать, они до конца не понятны.

Кто вызвался сформулировать требования: HelixOfTheEnd, инфогив

Ещё ссылка от инфогива, что она значит — не знаю: https://radikal.ru/lfp/s019.radikal.ru/i604...98614ae.jpg/htm
Последний раз отредактировано 28 декабря 2020 в 09:07 пользователем nosferatum
ЛСДУЗ Сообщение #105 28 декабря 2020 в 09:07
Новичок
1
Что-то такое, можно для любых групп словарей:
скрытый текст…
nosferatum Сообщение #106 28 декабря 2020 в 09:10
Супермен
35
инфогив писал(а):
Что-то такое, можно для любых групп словарей:
скрытый текст…

Уже что-то. Теперь нужно описать нестандартные столбцы:
- Цель
- Квали (что за две цифры, одна в скобках, другая нет?)
-- Upd: кажется, понял, число в скобках — это просто квала, умноженная на 1.2.
- Ранг - это просто текущий ранг или откуда-то из упражнений Хруста посчитанный?
Последний раз отредактировано 28 декабря 2020 в 09:33 пользователем nosferatum
ЛСДУЗ Сообщение #107 28 декабря 2020 в 09:19
Новичок
1
У Хруста свои требования в каждом словаре (https://klavogonki.ru/vocs/13571/).

Цель - следующая цель для ранга по Хрусту.

Квала - ну стандартная квала сколько позволяет выбить (квала х коэффициент = рекорд). Нужно, чтобы квала позволяла засчитаться рекорду для ранга. Звёздочка означала вроде, что квалу тоже нужно будет пройти для ранга.

Вообще, эту тему можно развить. Есть же ещё упражнения Кащея, аналогичные Хрусту. Тоже кому-то интересно будет.
Последний раз отредактировано 28 декабря 2020 в 09:20 пользователем ЛСДУЗ
HelixOfTheEnd Сообщение #108 28 декабря 2020 в 14:34
Организатор событий
1
если Хрустяшки будешь делать, может ещё и сделаешь топ по мультилингве(а не только билингве)?
Скажем, в топ добавить всех, у кого есть хотя бы по 5 пробега(или хотя бы 1, если сложно делать подсчёт) хотя бы по 10 языкам(всего на КГ 52), топ образовать по сумме и как доп. столбец среднюю скорость.

все 52 языка: Обычный(не словарь), in English(5539), Финский(29468), Вьетнамский(136908), Turkish(40559), Греческий(114825), Français(29236), Эстонский(115943), Хинди(137357), Немецкий(8950), Латинский(117862), Словенский(136302), Суахили(141423), Итальянский(25130), Чешский(29537), Ирландский(141960), Иврит(116745), Украинский(123163), Армянский(116073), Испанский(106487), Шведский(106688), Словацкий(30641), Азербайджанский(122702), Латышский(122698), Албанский(136354), Хорватский(29510), Исландский(115378), Африкаанс(141415), Литовский(115424), Каталанский(138500), Нидерландский(29667), Башкирский(136795), Португальский(29464), Эсперанто(122888), Арабский(130272), Татарский(141412), Венгерский(30395), Киргизский(136403), Македонский(116554), Сербский(кириллица)(122891), Польский(29513), Белорусский(29616), Датский(122761), Монгольский(116553), Индонезийский(141610), Болгарский(35239), Бенгальский(141609), Норвежский(106554), Румынский(29521), Грузинский(114083), Корейский(106181), Тексты на казахском(115209)

номера словарей по возрастанию: normal 5539 8950 25130 29236 29464 29468 29510 29513 29521 29537 29616 29667 30395 30641 35239 40559 106181 106487 106554 106688 114083 114825 115209 115378 115424 115943 116073 116553 116554 116745 117862 122698 122702 122761 122888 122891 123163 130272 136302 136354 136403 136795 136908 137357 138500 141412 141415 141423 141609 141610 141960

если не слишком сложно, можно сделать раскраску Кириллических словарей по рекорду в Обычном, Латинских по рекорду в Английском. но это необязательно и просто косметика.

и конкретно насчёт Хрустяшек:

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

То есть должно быть (верхняя строчка): Ник 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Сумма Ранг
сортироваться должно по рангу, дополнительно по сумме, в 1-24 должны быть указаны рекорды и(если это не слишком муторно) раскрашены в цвет ранга(по требованияям в упражнениях).

Ранг вычисляется по требованиям, указанным в Упражнениях ХРУСТа, требования для рангов ниже(от Гонщика до Тахиона(4 5 6 7 8 9 - 6 ступеней))
1 - 360 460 550 650 740 820
2 - 350 450 520 620 720 820
3 - 360 450 520 580 640 710
4 - 360 470 560 660 760 860
5 - 350 420 510 600 670 750
6 - 330 430 550 580 660 740
7 - 340 430 500 600 700 800
8 - 280 370 430 490 550 610
9 - 200 250 320 370 420 500
10 - 360 460 540 640 740 830
11 - 330 390 480 580 680 780
12 - 340 400 520 620 720 850
13 - 350 450 550 670 800 900
14 - 340 420 490 580 670 750
15 - 370 440 550 630 730 830
16 - 370 470 570 670 780 880
17 - 339 441 500 600 700 800
18 - 350 450 520 600 680 770
19 - 330 420 480 550 630 720
20 - 350 420 520 620 720 820
21 - 340 430 500 580 640 710
22 - 370 470 560 660 760 860
23 - 270 330 400 470 550 650
заключительное - 400 500 600 700 800 900

номера словарей от 1 до 24 по порядку: 13571 13572 13573 13574 13583 13584 13585 13654 13656 13659 13661 13663 13664 16346 16759 16762 17495 17497 17498 17499 32013 32014 32015 32016

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

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

насколько я поняла, инфогива интересуют расширенные(по информации) таблички, формируемые для каждого индивидуально. мне больше интересен топ(впрочем, думаю, что и не только мне). картинку разве что в БИО вешать, а топы вещь важная.

идеи вот такие, что из этого делать решать, конечно, носфератуму.
Сударушка Сообщение #109 28 декабря 2020 в 16:44
Организатор событий
65
nosferatum писал(а):
Первая загрузка данных
... ...
Время загрузки: 37 часов 48 минут 54 секунды

Вторая загрузка данных
... ...
Время загрузки: 1 час 16 минут 30 секунд

Очень впечатляет, как и все, что делается и планируется сделать!

nosferatum писал(а):
Закачаны данные со страницы статистики (запросы вида http://klavogonki.ru/api/profile/get-stats...?userId=242585). Это позволит сделать топы по словарям. Но потерпите, ещё нужно довольно много времени ... ... Юзеры, которые скрыли свою стату, в топы по словарям не попадут.

Пока ждем реализации анонсированного, сделала полуавтоматическую выгрузку по обновленной базе клавогонщиков с пробегом, выгруженной nosferatum.
Топ клавогонщиков с пробегом 1000+ по данным на 25.12.20 г. с добавлением статистики по книгам из Книготопа и по режимам и словарям (для режимов Обычка, БО, Буквы, Марафон, словаря – Обычный in English и Книжного словаря – для всех клавогонщиков, для остальных режимов и представленных словарей – с пробегом 10к+).
Упорядочивание везде выполнено согласно упорядочиванию на листе Общая стата по суммарному пробегу на КГ, последними столбцами представлены ранг по рекорду в данном режиме/словаре (Место) и ранг по пробегу (№ пробег).
Есть некоторые отклонения в местах по пробегу от реальных, т. к. я упорядочила по пробегу из топа Обычки nosferatum'а, забыв о временном разрыве. Теперь править будет долго (т. к. данный порядок взят для всех режимов/словарей), но кому важно, могут выгрузить и посмотреть в Экселе более точную картину.

Выгрузка данных произведена с помощью технических средств, предоставленных Phemmer'ом с использованием данных ajaks-профилей (в топе присутствуют данные всех клавогонщиков с указанным выше пробегом, в том числе те, у кого статистика закрыта).
скрытый текст…

На листе Общая стата представлен пересчет количества набранных отрывков с учетом корректировки на эквиваленты в Обычке пробега в книгах, марафонах, в присутствующих словарях (с учетом выгрузки данных для клавогонщиков с 10к+ и 1к+ пробега для тех или иных режимов/словарей).
А также представлена разница в местах с учетом этого пересчета.

nosferatum, на главную страницу твоей статистики предлагаю добавить две строки в топ-1:
топ-1 по количеству наград – Deda61 (451) (подсчитывается в аджакс-профиле) и топ-1 по количеству набранных книг – Espera (213) (берется с обновляемого ежедневно Книготопа).
Последний раз отредактировано 28 декабря 2020 в 20:54 пользователем Сударушка
Phemmer Сообщение #110 28 декабря 2020 в 22:43
Супермен
71
По хрустяшкам есть такой топ http://klavogonki.ru/forum/general/2025/
nosferatum Сообщение #111 29 декабря 2020 в 08:26
Супермен
35
Phemmer писал(а):
По хрустяшкам есть такой топ http://klavogonki.ru/forum/general/2025/


Выглядит отлично! Сколько ещё я буду тебя уговаривать опубликовать исходники, уважаемый Phemmer? Ты уже сделал много нужной работы, так зачем мне переписывать ещё раз, вместо того, чтобы либо интегрировать, либо переиспользовать готовый код?
nosferatum Сообщение #112 31 декабря 2020 в 10:58
Супермен
35
Итак, всё-таки небольшой подарок клавосообществу КГ на НГ

Таки успел за ночь сделать загрузку статистики в БД.

Сделал суперчерновые версии топов:
http://klavostat.com/_top-by-chars.html — по рекорду в буквам
http://klavostat.com/_top_by_races_count_in_noerror.html — пробег в безошибке
http://klavostat.com/_top_by_races_count_in_normal.html — пробег в обычном
UPDATE 1: http://klavostat.com/_top_by_races_count_in_marathon.html — пробег в марафоне
UPDATE 2: Запрос _Daemon_ http://klavostat.com/_top_by_best_speed_voc-40933.html — рекорды по Кибертекст_Ghost
UPDATE 3: Запрос BorisQuiz http://klavostat.com/_top_by_best_speed_voc-62238.htmlЦифросоточка по рекорду

Ещё раз — всё суперчерновое (данные верные, но никакой красоты, навигации, подсветки по рангу, номера места итд)
  • Доступ только по прямым ссылкам, навигации на эти страницы нет.
  • Только пользователи с открытой статистикой, данные взяты оттуда
  • Время загрузки есть в постах выше.
  • Ссылки на профиль и окраски в цвет ранга нет, это тупо выгрузка запроса из БД + применённый стиль и написанный заголовок.


Сегодня красиво вряд ли уже будет время делать (31 декабря), и я хотел хоть пару часов всё-таки поспать.

Аналогичные тупо-выгрузки-из-ДБ по другим словарям и какой-то одной сортировке, без пейджинга — могу сделать сегодня по запросу, обращайтесь.

Надеюсь, кому-то будут интересны. С наступающим НГ всех!
Последний раз отредактировано 4 января 2021 в 01:58 пользователем nosferatum
Сударушка Сообщение #113 31 декабря 2020 в 14:12
Организатор событий
65
nosferatum, спасибо большое от меня – топ-11 по пробегу в БО и топ-17 по пробегу в Марафонах!
Есть куда расти, есть на кого ориентироваться.

Ты прямо настоящий Дед Мороз! И тебя с наступающим Новым годом! Пусть все задуманное получается, все мечты сбываются!

Speedyman Сообщение #114 1 января 2021 в 00:00
Тахион
64
Наибольший общий пробег на начало 2021 года:
Speedy(13.250) + Гегемон(103.600) + Speedyman(183.600)=300450
Kenichi - 298066.
Последний раз отредактировано 1 января 2021 в 00:02 пользователем Speedyman
nosferatum Сообщение #115 1 января 2021 в 00:03
Супермен
35
Speedyman писал(а):
Наибольший общий пробег на начало 2021 года:
Speedy(13.250) + Гегемон(103.600) + Speedyman(183.600)=300450
Kenichi - 298066.


Да, текущие страницы я тоже перегенерю из новой базы. Думаю, завтра.
Speedyman Сообщение #116 1 января 2021 в 02:40
Тахион
64
Можно на главную таблицу топ-1 рекордов добавить: наибольшее количество рейтингового опыта за месяц: iforrest 334117
HelixOfTheEnd Сообщение #117 1 января 2021 в 04:48
Организатор событий
1
nosferatum писал(а):
[*] Только пользователи с открытой статистикой, данные взяты оттуда

а закрытую прям никак быстро не собрать?
Biba Сообщение #118 1 января 2021 в 15:46
Новичок
52
никак
Chita Сообщение #119 1 января 2021 в 15:57
Кибергонщик
16
Последний раз отредактировано 1 января 2021 в 15:57 пользователем Chita
nosferatum Сообщение #120 1 января 2021 в 23:21
Супермен
35
HelixOfTheEnd писал(а):
nosferatum писал(а):
[*] Только пользователи с открытой статистикой, данные взяты оттуда

а закрытую прям никак быстро не собрать?


Уже обсуждалось парой страниц выше (пост 46 и далее по теме).

Мы можем использовать /ajax запросы, но это будет «для каждого игрока — один запрос по каждому словарю», то есть замедлит загрузку. Парсер ajax страниц уже есть у Phemmer, так что при наличии готового кода я могу быть более благосклонен к тому, чтобы использовать этот хак (а парсинг html — это очевидный костыль).
Конечно, мы будем запусать /ajax только для игроков со скрытой статистикой (их примерно 3000+). Но всё равно лучше определиться с набором словарей, для которых мы будем делать подобные запросы.

Но в целом я согласен с той точкой зрения, что скрытие статистики — это право пользователя не публиковать свои персональные данные, своеобразный GDPR aka Datenschutz, которым пользователь управляет добровольно, своим решением.

Сделал список актуальных (незаблокированных) игроков, у которых скрыта статистика — http://klavostat.com/_players-with-hidden-stats.html. Действительно, как мы видим, здесь достаточно много известных игроков с большим пробегом, статистика которых (и позиция в топе) представляет интерес.
Что я бы предложил сделать — используя скрипт Phemmer для общей рассылки, написать им ЛС в духе «Вы скрыли свою статистику. Если вы ходите попадать в топы по словарям, пожалуйста, откройте статистику». На моё субъективное ИМХО, это было наиболее корректным решением.
Последний раз отредактировано 4 января 2021 в 01:59 пользователем nosferatum

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

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

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