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/s5qf26awFU4TODO: требования нужно собрать, они до конца не понятны.Кто вызвался сформулировать требования: 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 |
|
nosferatum
|
Сообщение #111
29 декабря 2020 в 08:26
|
Супермен
35 |
Phemmer писал(а): Выглядит отлично! Сколько ещё я буду тебя уговаривать опубликовать исходники, уважаемый 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)= 300450Kenichi - 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
|