Поиск по тегу «рыбля воротит нось» — ПИПМАЙ: Лучшее со всей сети
Акцентный цвет
Фон
Игровой блок на главной
Праздничное оформление
Для всех устройств

Поиск по тегу «рыбля воротит нось»

от
до

Моя жизнь за бугром

    Смотрю, меня уже просто так минусят, ну ладно, может этим разбавлю минусы, а там посмотрим.

    Я не буду говорить куда переехал но это Европа, где хорошо говорят на английском языке. Переехал лет 7 назад. Как это просиходило:

    Сначала мне написали в Linkedin и предложили пройти собеседование на позицию инженера, компания очень известная, я согласился. Предложили материал для подготовки, дали месяц на подготовку, я готовился, потом так называемый скрининг. По телефону я отвечаю на вопросы. Еще через 2 месяца написали, что я скрининг прошел и предложили приехать к ним, я согласился. Приехал к ним через месяц на 3 дня. Собеседование продолжалось 5 часов с перерывом на обед. Ничего сложного. Еще через месяц мне сделали оффер. Я согласился.

    Дальше началась бюрократия, мне дали консультантов Москве, консультантов в Европе, они решили мои налоговые вопросы. Мне оплатили перевозку вещей в контейнере и перелет семьи. Так же мне оформили разрешение на работу и я через еще полгода поехал в Европу.

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

    Теперь про жизнь. По сравнению с Москвой мы сильно потеряли.

    Детские сады платные и очень дорогие, около 800 евро за ребенка. Школы забиты, приходится ждать, когда освободиться местом, можно пожаловаться в органы, но тогда тебе дадут нехорошую школу, в которой кстати тоже мест нет, но тебя обязаны взять, поэтому такие школы еще и переполненны. В школе не кормят, мы собираем ланч-бокс. Школы бывают разные, католические, протестанские, обычные и тд и тп. Вначале года собирают деньги(хотя права не имеют) на учебники и шторы, это добровольное пожертвование, но все платят. Около 300 евро с ребенка. Если есть форма готовьте еще 200. Секций в школах нет, заканчивают учиться часа в 2-3. Если хочешь, что бы ребенок занимался секциями ищите, там как всегда очереди и мест нет, цена обычно 10-15 евро за занятия, занятие 1 раз в неделю.

    Жилье очень дорогое и плохого качества. Новые дома относительно нормально. В домах холодно, сами выбираете какую комнату и как топить, топят чем угодно, электричеством, газом, мазутом, каким-то дизелем, есть даже масло. В квартирах либо газом топят, либо электричеством, обычно второе. Даже в квартирах есть бойлер, для нагрева воды. Центрального отопления в понимании российского гражданина нет.

    Медицина. Бесплатная есть, но ее нет. Что это значит, значит что ждать будешь годы, да и мне не положена. GP - это терапевт, он платный для всех, кроме держателей медкарт(социальщиков проще говоря, те кто живет за чертой бедности). GP стоит 40-70 евро. Без направления GP вас ни один консультант (узкоспециализированный доктор, типа дерматолога) не примет. К GP запись обычно за неделю. К консультантам даже платным запись за 4-6 месяцев, стоят они от 150 евро, а обычно выше. Один раз мне пришлось отдать 400 евро за визит (Кстати посмотрел психиатра, стоит 250 евро). Но у меня есть страховка, отдаю 90 евро в месяц, это выше среднего. Что она покрывает? GP 80%, в зависимости от консультанта 50-70%, т.е. отдал 200 евро, вернули от 100 до 140. Про дантистов забудьте, все будете платить сами. Если лечение в госпитале, то обычно покрывают 100%, ну и если хотите пол поменять то тоже 100%.

    Транспорт, отдельная история. Есть карточки типа "Тройка", работают на большинстве транспорта. Сделано так, что проезд обычно 2 евро, но если много пользуешься то больше 50 - 60 евро в неделю не потратишь, но если электрички то там порог больше. Автобусы ходят как угодно, но не по рассписанию. Электрички вечно опаздывают и отменяются.

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

    Люди здесь очень приятные и приветливые, ясное дело это все поверхностное, но зато не создают скандалы на ровном месте, если кто-то кому-то дорогу не уступил, то стандартная реакция это шутки и смех.

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

    Финансы и цены. Что я получил когда переехал? 15 тысяч евро подъемные, перелет перевозка бесплатно, первые пару месяцов жизни в отеле. Зарплату очень трудно сравнивать, но наверное налоги особо никого не волнуют, сколько я полал по контракту? 4500 в месяц евро, премии в конце года 15 тысяч евро плюс 5000 баксов. Сколько тратили: 1800 евро жилье в месяц, ЖКХ 100 евро в месяц, связь + интернет 100 евро в месяц, еда 120 евро в неделю, детские кружки и другие детские активности, например продленка стоило 200 евро в неделю.

    Как я встретил СВО. Ну не очень, в групповых чатах полетеле разного рода письма, украинское сообщество сразу активизировалось, при чем раньше половина из них при вопросе "Откуда вы?" отвечали "Из России", потому что вопросов потом меньше. Некоторые коллеги начали воротить нос и перестали здороваться, есть те кто перестали говорить на русском языке. Россияне некоторые тоже отличились, очень хотели показать лояльность и вешали флаги, ходили на митинги, сдавали деньги на всякое. Ходили слухи, что есть один работник посольства РФ, который говорил, что то вроде "я с Украиной, но работа обязывает", были дети некоторых чиновников, которые тоже пытались показать лояльность. Мне все это вместе не нравилось, я помалкивал и в конце концов сменил работу.

    Что сейчас? Да ничего, похрену уже все.

   


Раскрыть

Армия и дискриминация мужчин

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

Предыдуща статья: https://pipmy.ru/5526-pushechnoe-mjaso-ili-zachem-nuzhny-muzhchiny.html

Давайте теперь посмотрим, к чему приводит поло:

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


Раскрыть

Пушечное мясо или зачем нужны мужчины

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

    Наверное все задумывались, а в чем смысл мужчин? Женщины понятно, они рожают и воспитывают детей, а мы зачем? Если бы были одни женщины, то люди могли перекресно оплодотворяться и скорость размножения было в 2 раза быстрее. Явно нужно зачем-то важным иначе природа не жертвовала бы половиной популяции.

    Можно посмотреть эту лекцию: https://www.youtube.com/watch?v=wmpIDI8kJ2E заодно задорно посмеяться вместе с автором над мужчинами, она прям упивается моментами. Вкратце, мужчины нужны что бы опробовать на них новые качества человека, новые гены, при чем протестить по максимуму, если мужчина выжил, то должен пройти половой отбор, т.е. самочка должна предпочесть его другим для размножения. Женщина больше усреднена, содержит качества, которые уже опробованы и проверены, они помогают жить и выживать. Еще не редко самцы являются первой преградой в защите самок и вообще могут выполнять самую грязную и опасную работу, что бы сберечь самок. Кроме того, существует половой отбор, когда женщина выбирает партнера на основании каких-то своих утсановок. Например, хвост павлина не имеет смысла, животные с ним неуклюжи и привлекают внимание, но он имеет значение для самки "ну раз этот самец выжил с таким хвостом, значит гены неплохи". Заметьте половой отбор на сонове каких-то желаний и преференций самца минимален, редко у кого и когда самец решает с кем спариваться, он спаривается с тем кто даст и насильно ее трудно заставить. В принципе, наверное все.

 


Раскрыть

О сворачивании комментариев

Снова здравствуйте, мои изумрудные!

Это, вообще-то, не первый пост на тему сворачивания комментариев. Но к теме явно надо вернуться.

Небольшой экскурс в историю:

Вот пост, где в трёх буквально картинках объяснялось, как можно сделать комментарии сразу очень удобными. Много кто решил не особо в это вникать, ограничившись поспешным выводом, что я просто предлагаю сделать так, как это реализовано на пикабу. В комментариях на эту тему высказались. Но это же пост для разработчиков в первую очередь, он же из категории предложений - его понимать в полной мере каждый прохожий в принципе и не обязан. Какой может быть спрос с тех, кто глянул в полглаза и не понял ничего? Люди в большинстве своём в интернет деградировать ходят вообще-то.

На деле же там предлагается сделать свёртку постов условно снизу ветки, а не сверху, как это реализовано на пикабу. А это сильно удобней. Что характерно, свёртка "снизу" на пикабу тоже есть, как выяснилось.

Тут дело даже не в этом, а в том, что реализованная на пикабу свёртка комментариев "сверху" исполнена слегка ошибочно. И те, кто много сидел в комментариях на пикабу могли это замечать на бессознательном уровне. Сворачивание комментариев работает там как-то неудобно, но сложно понять почему. В этом посте вы узнаете почему.

Короче, заходит речь с админом о том, что удобство пользователя - это далеко не последняя для ресурса характеристика, а как раз, скорее, одна из первейших, за повышение которой следует бороться, ибо народец не склонен засиживаться надолго там, где ему неудобно. И имеет свойство сваливать без объяснения причин. Что, собственно, вполне ожидаемо, потому что люди не обязаны разбираться, почему конкретно им неудобно - об этом голова должна болеть у специально обученного специалиста по UI/UX.

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

Я лично знаю человека, который по моей просьбе зашёл на пипмай, зарегистрировался, посмотрел в посты, комментарии - и ушёл навсегда, не имея желания возвращаться, объяснив мне это примерно так: "я не понял как в этой срани вообще можно разобраться".

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

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

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

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

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

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

Было бы очень неплохо, чтобы все инструкции по пользованию фичами на сайте были сведены в какой-то альманах и были в постоянном доступе. А то бывает, отмахнёшься от сообщения о нововведении - и всё! Думай-гадай потом, что как работает и где лежит, когда оно включено, когда отключено, и что делает вообще.

В общем, сворачивание комментариев на пипмай присутствует, и оно реализовано "сверху". И более того: это сворачивание "сверху" по принципу работы полностью такое же, как на пикабу - полная функциональная копия - и, как следствие, имеет тот же изъян из-за которого оно неудобно!

БЛЯПИЗДЕЦ! ЁБАНЫЙ РОТ! КАК ТАК НАХУЙ!? КАК, НАХУЙ, ТАК!? ВЫ ЧЕГО? НАХУЯ, А ГЛАВНОЕ ЗАЧЕМ?

Очень расстраивающая ситуация. Я был нимало обескуражен.  

Ну что ж, определённо возникло некоторое недопонимание. Возможно, следовало передать мысль не в трёх картинках, а в сложном комиксе на пару страниц. Было недостаточно "воды", как это называют некоторые пипчане.

Конечно же, это надо срочно исправить. Итак, к вашему вниманию, очень подробное иллюстрированное предложение, как сделать удобное сворачивание постов.

Я же надеюсь, не существует никакого табу: "сделать как угодно, только не так, как Ямайка предложил"? А то было бы смешно. Типа, на зло маме уши отморозить.

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

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

На примере видно, что некоторые комментарии могут быть очень длинными, что затрудняет переход к следующим веткам под ними. В таком случае комментарии и их ветки должны быть сворачиваемыми. Самое первоначальное и простое, как можно это сделать - создать свёртку "сверху", то есть когда юзер жмёт на кнопку под комментарием и сворачиваются вся ветка, находящаяся под ним, то есть его продолжающая.

Как это реализовано на пипмай и пикабу:

 

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

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

Как же сделать так, чтобы было нормально и удобно? Для начала можно реализовать как минимум адекватную свёртку комментариев "сверху", а потом уже и "снизу" прямо на её основе.

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

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

Нажав на кнопку "сплющивания" на комментарии от BestButtonDeveloper6, пользователь получит следующую картину:

Ещё немного поясняющих механику "сплющивания" иллюстраций:

Если "сплющенные" ветки равнозначны, то и плашки для них будут раздельные:

"Сплющить" можно даже корневой комментарий:

Да, реализация такой механики требует куда больше мастерства и трудозатрат от разработчиков. Но:

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

- Она является отличной основой для надстройки более комплексных механик свёртки комментариев.

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

Красной линей соединены комментарии, относящиеся к одной цепочке диалога. После нажатия на кнопку, обведённую красной окружностью, всё, что не имеет отношения к этой цепочке, просто скрывается или сворачивается:

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

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

Нужно. Делать. Лучше.

И поскольку Ямайка на досуге иногда посвящает время размышлениям об этом, то вариант со свёрткой комментариев "снизу", использующий описанную выше механику свёртки "сверху", при этом удобный и доступный для пользователя, описывается ниже.

Итак, дано не самое ветвистое древо комментариев. При текущем дизайне комментариев на пипмай, даже в этом уже нелегко ориентироваться, и это при том, что все комментарии однострочные и картинок там нет.

Пользователь нажимает на кнопку сворачивания к диалоговой цепочке на самом нижнем комментарии, который оставил FullMoose:

Как видно из этого поясняющего примера, алгоритму достаточно выявить все не относящиеся к отмеченной синей линией диалоговой цепочке комментарии, а затем применить к ним "сплющивание". Результат будет таким:

(Зелёные линии являются пояснительными исключительно в рамках иллюстрации)

В итоге и диалоговая цепочка имеет удобный вид, и пользователь знает, что и где было "сплющено" для достижения этого. 

В случае необходимости можно даже развернуть любую из плашек, например, пользователь решил развернуть самую нижнюю:

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

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

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

Ну а пока что всё. Всем, кто прочитал и вник, всех благ.


Раскрыть

Не только обёртка. PIPS #20

 

Юнона и Ксе Ксе Ксе

Интервью YnonaXexexe(╬▔皿▔)╯ главреда PIPS, для PIPS.

- Почему Юнона и кто такие эти Ксе Ксе Ксе?

- Юнона — мое настоящее имя, для творчества я использую псевдоним SobolevaDvachevskaya, но так как я регалась изначально для комментариев на Пикабу, мне хотелось, чтоб ко мне обращались по имени, а Xexexe — некий злобный смешок, дабы показать часть своего противного характера, ну и чтобы имени не одиноко было :D

- В своих комментариях ты иногда говоришь как бы от мужского имени, а иногда от женского. Читатели в замешательстве. Настало время спросить открыто: какой у тебя пол?

- На кухне линолеум, в комнате и коридоре — паркет.

- Что ж, надеюсь, теперь вопросов насчёт пола станет меньше. Это, как известно, от типа пипки зависит. Как ты оказалась на пипмай?

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

- Как по твоему: пипчане, они всё-таки лягухи или скорее ящерицы?

- Лягухи, конечно, причем с хвостом, без хвоста — это вомбат под прикрытием :D

- *Что-то внимательно записывая в блокнот* Раз уж вспомнили про вомбатов: а ты сама бываешь периодически на пикабу, реддите, или том же вомбате с капибарой?

- Изредка на пикабу. Примерно раз в несколько месяцев. На вомбат я один раз заходила, не помню когда, там мне показалось скучно. А у kapi.bar я даже название сайта не знаю.

- Похоже, пипмай действительно запал тебе в душу. Как у тебя родилась идея сделать PIPS?

- Гималаев скинул в чат художника обложку журнала "Олег" и предложил сделать такой же журнал про пипмай. А название родилось само собой, оно ни к чему не привязано.

- Что тебя больше всего радует и что раздражает в пипмай?

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

- А радует то, что пипка очень отличается от пикабу. Здесь много крутых фишек, которых тому же пикабу не хватало. И люди здесь по большей части стараются генерировать новый контент, а не тащить его со всех углов. Нравится жёсткое отношение к ссылкам, сокрытие рейтинга, отсутствие ленты. Обожаю вкладку «все комментарии», наличие лички. Даже фотоальбомы нравятся, хотя казалось, что они тут не нужны. Плюс на пипке очень много активностей.

- У тебя ведь сейчас зимняя сессия в процессе? На кого учишься, если не секрет?

- Художник анимации и компьютерной графики. Бестолковая программа, хочу отчислиться.

- А звучит вроде отлично. Всякие блендеры с оупентунзами и гимпами знать очень полезно. Обычно подобные вещи исключительно по роликам на ютубе осваивают, а не в академическом порядке.

- Так и мы по роликам осваиваем, при том, что за обучение ещё и платим.

- Ну что ж, успехов в учёбе тебе всё равно. И напоследок: у тебя есть какие-то пожелания пипчанам как сообществу в этом новом году?

- Пожелания? Конечно же читать PIPS и плодить для него новости. А так же делать побольше контента :*

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

 

Молчание пипят

Для создания этой статьи мне пришлось потрудиться чуть больше обычного.

Думаю, мало для кого является секретом, что многие пользователи пипмай не публикуют постов и даже не пишут комментариев. Почему бы не вовлечь их хоть немного? И действительно. Доступ к списку пользователей же есть.

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

И тут я очень неожиданно для себя столкнулся с проблемой. И выглядит она так:

Список пользователей выдаётся по 15 штук на страницу. И нередко случалось, что вся страница целиком состояла из таких вот "заброшек". Дело внезапно пошло не к тому, чтобы написать случайным людям с просьбой высказать пару слов, а вообще найти достаточно людей, которые ещё бывают на пипмай и имеют какие-то шансы увидеть моё сообщение.

Схема простая: берём страницу с пользователями, находим там всех, кто заходил менее, чем 2 недели назад, проверяем, не является ли такой пользователь представителем примелькавшейся тусовки, и отправляем ему сообщение.

На 100 страниц то есть среди 1500 зарегистрированных, нашлось примерно 100 "живых" аккаунтов, не считая полсотни тех, кто регулярно тут светится или в комментариях, или постами. Тех, кто закрыл инфу о своих посещениях в профиле, от силы десяток - их тоже в расчёт не берём. В среднем 1 аккаунт на страницу. И тенденция такова, что чем дальше в прошлое, тем больше "заброшек", что тоже ожидаемо.

Один из пятнадцати, господа, вдумайтесь в это соотношение. Разумеется, я не считал точно, да и не моя это, в общем, забота - статистику собирать; мне нужен материал для номера.

Что имеем навскидку: ну, пусть 3500 зерегистрированных. Пусть даже десятая часть из них не "заброшки". Даже если считать очень щедро, так всё равно получается всего 350 активных пользователей! Чёрт с ним: 500. Это как ни крути, не густо - считай население скромной деревни.

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

Нормально ли это для ресурса на таком этапе развития? Может быть, да. Может быть, нет. Может быть, зря я задался этим вопросом... 

Но вообще, суть же не в этом! А в том, что сообщество всё ж-таки есть! И оно живёт, бурлит всяческим образом, развивается.

Те, кто регулярно заходит на пипмай, что-то в нём всё-таки находят, что-то для них пипмай значит.

Так что же такое пипмай?*

Пипмай это... Пошёл нахуй!

Пипмай это... Всё супер!

Пипмай это... Пипкам кис!

Пипмай это... Не скатись...

Пипмай это... Интересно-непривычное.

Пипмай это... Виртуальный бар.

Пипмай это... Недостаточно оптимизированный.

Пипмай это... Источник вдохновения.

Пипмай это... Лишняяправая панель.

Пипмай это... Власть Проповедника.

Пипмай это... Странный междусобойчик.

Пипмай это... Неожиданно прекрасно.

Пипмай это... Потрогавшие траву.

Пипмай это... Где я?

Пипмай это... Хорошее начинание.

Пипмай это... Развивайтесь, верю!

Пипмай это... Нормальный сайт.

Вот так.

*Подборка основана на высказываниях случайных пользователей pipmy.ru о ресурсе пипмай, с ограничением в 2 слова. Огромное спасибо всем откликнувшимся.

 

Пора бы уже и накатить

Для написания этой статьи пришлось обратиться к админу, потому что если кто-то и знает, какие нововведения готовятся на сервисе, то уж точно он. Потому что он разработчик. А разработчики, как известно, точно знают, что они делают. Всегда.

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

Но, видимо, что-то с этим не срослось.

Однако, это не значит, что сказать не о чем, и ничего не происходит. Изменения видны, если знать куда смотреть. Например, буквально вчера появилась кнопка жалоб!

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

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

А что же дальше?

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

Будет ли официальный нормальный roadmap вместо этого? Опубликуют ли какие-то планы и цели проекта? Будут ли когда-нибудь пользователи информироваться о процессе разработки? -  все эти вопросы, к сожалению, пока остаются без ответа.

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

И накатывают.

 

Путь воды

Вам никогда не казалось, что некоторые мысли настолько просты, что их понимание не стоит и выеденного яйца? Ну, например, если знаете как работает зубчатый гидронасос, то может создаться впечатление, что это сложно не понять. И любое подробное объяснение такой простой идеи в целом выглядит избыточным. "Ну ёлки-палки, - восклицаете вы, - всё же итак понятно!" "Что за постоянное переливание из одного в другое?" "Много текста - мало мысли." И всё такое в том же духе.

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

Ну вот хотите на примере?

Знаете, что такое эффект Магнуса?

Скорее всего, нет. Так вот:

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

PIPS образовательный.

И нет, на этом не всё. Вы же заметили на обложке пипа с брандспойтом, льющего воду? Так вот она вся здесь!

Представьте, что вы находитесь на улице. Дует ветер. И вот вам приходит в голову начать ходить по кругу. Вы начинаете свою прогулку и вскоре замечаете, что на какой-то части вашего пути ветер дует вам в лицо, а на противоположной части - в спину. Это вполне ожидаемо - вы же ходите по кругу, чёрт возьми!

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

Ветер - это всего лишь движение воздуха. И тут впору вспомнить известный со школьных времён 3-й закон Ньютона. Наверное это даже объясняли примерно так: если вы давите на стену, то и стена давит на вас. Это всё очень упрощённо, конечно. Но этот закон в том числе значит, что если воздух дует вам в лицо, что вы чувствуете как ветер, то можете быть уверены, что и вы тоже давите лицом на воздух.

Чем сильнее вы чувствуете ветер, тем сильнее вы его тормозите. И коль скоро вы катаясь на карусели чувствуете что в одной части оборота он дует на вас сильнее, чем в другой, это означает как раз то, что с одной стороны карусели вы его тормозите сильнее, чем с другой.

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

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

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

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

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

Короче, чем быстрее молекулы летят мимо бочки, тем меньше у них охоты об неё стукаться.

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

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

Ну а если уж на бочку давить с одной стороны сильнее, чем с другой, то она непременно попытается двигаться в тут сторону, с которой меньше давят. Этим занимаются все тела положительной массы.

Вот в этом и есть суть эффекта Магнуса. Если ветра нет, то бочку можно просто куда-нибудь кинуть, предварительно сильно закрутив, тогда ситуация будет такая же, потому что физике без разницы, бочка стоит, а воздух движется, или же воздух стоит, а бочка в нём движется.

Да и вместо бочки можно взять вообще любой твёрдый объект. Желательно круглый, но это необязательно, просто на фигурах вращения, а в лучшем случае на сфере, наблюдать эффект Магнуса не мешают всякие другие эффекты.

Вот, например, мяч. Будучи закрученным и брошенным, если вы, конечно закрутили его не вдоль оси броска, а лучше как раз поперёк, полетит со сносом в сторону закрутки, то бишь по кривой дуге. Если крутить вверх или вниз, чтобы ось вращения была горизонтальной, то мало чего можно увидеть на фоне той дуги, по которой он и без всяких закруток в гравитационном поле летает. А вот если вбок, так, чтобы ось вращения была вертикальной, то эффект Магнуса будет наблюдаем невооружённым глазом. Футболисты, например, используют его для того, чтобы забить мяч в ворота из угла поля, находящегося с воротами на одной линии. Мяч умышленно бьётся немного в сторону от ворот, но подкручивается при ударе и благодаря эффекту Магнуса его начинает сносить в сторону ворот. Иногда прямо в них.

И вот теперь, ЕСЛИ ТОЛЬКО вы не поленились прочитать и вникнуть во всё это, приложить ум и старание - и в результате теперь понимаете, что такое эффект Магнуса, через то, как он возникает - вам вполне может показаться, что вы просто проплыли через тонны воды в тексте, поглотили большое количество необязательной информации и вообще неоправданно напряглись ради столь простого знания.

Но ответьте себе честно: много ли вы поняли из того, что было написано про эффект Магнуса в начале этой статьи? 

Таков он, путь воды.


Раскрыть

О сворачивании постов

Знакомая каждому пипчанину ситуация: свёрнутый пост, нажимаешь "развернуть" и... он становится на два миллиметра длиннее.

Предвосхищая ваши пошлые шутеечки, скажу, что очень хорошо, что у пипчан такое только с постами случается.

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

И вот сейчас при помощи картинок вам будет изложено, как это делается. Не потому, что разработчики не знают, а для наглядности и общего развития всем остальным, разумеется, чтобы когда это сделают, вы могли знать, как это работает, когда будете писать свои посты.

Итак, как оно сейчас:

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

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

Здесь как раз пример того случая, когда длина поста для сворачивания превышена (написанный в посте текст зашёл ниже второй линии). И такой пост сворачивается. Причём сворачивается не по нижнюю линию, а по верхнюю, то есть под сворачивание автоматически попадает значимый кусок контента, причём всегда.

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


Раскрыть

Об элементах управления

Горячо приветствую вас, мои изумрудные пипчане! *и в этот момент они поняли, что надо бежать*

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

Для начала, конечно же, надо определить определения.

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

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

Элементы управления нужны для управления состояниями функций механизма.

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

Так вот. Для того, чтобы что-то понимать, человек должен владеть информацией. И элементов управления это тоже касается.

Какая информация необходима пользователю для корректного использования элемента управления?

1) Механизм - состояние функции какого механизма изменяется посредством данного элемента управления.

2) Функция - состояние какой функции изменяется посредством элемента управления.

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

4) Текущее состояние - состояние, в котором находится функция механизма на данный момент.

5) Порядок воздействия - то каким образом надо взаимодействовать с элементом управления, для достижения необходимого состояния функции.

Тут, конечно, если доработать терминологию и теоретическую базу, можно научную диссертацию написать вообще. Но мы тут не за этим. Смотрим картинку:

Вот тут полный комплект по информации:

Механизм - есть (Robo wife 3000)
Функция - есть (Panic)
Возможные состояния - есть (Off, So so, Full ahead)
Текущее состояние - есть (ползунок сверху, указывает, что Full ahead)
Порядок воздействия - есть (двойная стрелка показывает, что надо двигать ползунок вверх-вниз)

Надо ли всё это? Разумеется, нет! (Если в качестве пользователей не предусматриваются вообще аборигены из лесов, конечно)

Информация о механизме пользователю зачастую известна или сразу, или определяется им по тому, на чём расположен сам элемент управления.

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

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

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

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

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

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

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

Информация о порядке воздействия указывается только в сложных случаях.

На рычаге переключения передач в автомобиле указывается, куда его двигать и по каким путям, потому что сложно и не везде одинаково. А на кнопках не указывают, что их надо жать - это итак всем понятно.

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

С тем, что отображать надо, а что не надо, разобрались, едем далее.

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

включено - активировано - задействовано - вперёд - больше - шире - выше - правее - ярче - цветнее - громче - наполненней - вдавленней - по часовой

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

Если кто не заметил, то эти ассоциативные ряды состоят из противоположных по значению слов.

Что это значит и как этим пользоваться?

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

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

Включение для тумблеров - это вверх или вправо.

Зная это, вы уже можете понимать из наблюдений, включают или выключают пилоты что-то, щёлкая переключателями в кабине. Ну или понять, насколько был ленив тот, кто ставил выключатели света у вас дома.

Дело в том, что на западе проводка в доме идёт по низу стены, и, как следствие, на выключатели заходит тоже снизу, поэтому у забугорных выключателей есть стандартное отверстие для подвода провода снизу. У нас же проводка идёт по верху стены, и провод в выключатель заводить надо сверху. Отечественных выключателей не делают уже давно, так что приходится пользоваться импортными. И в них надо либо сверлить отверстие сверху, либо можно полениться и перевернуть их при установке вверх ногами, что обычно и делают. После чего, выключатели начинают включать свет при нажатии вниз, что контринтуитвно.

Разумеется, никто не запрещает использовать несколько способов передачи состояния, если они из одного и того же ассоциативного ряда. Например:

Интуитивно понятно, что слева что-то выключено, а справа включено. Что об этом говорит? Справа: ярче, цветнее, вдавленнее. И даже абстрактная пиктограмма прямее и больше заполняет площадь кнопки делая её заполненнее.

Пиктограмма, кстати, может нести информацию о механизме, о функции и о текущем состоянии функции одновременно. 

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

Самое время вспомнить про такую штуку как кнопка subscribe на youtube, являющуюся характерным нарушителем паттерна, потому как эта кнопка ярче выглядит, когда пользователь не подписан на канал, и тусклее, когда он подписан. Причём и по сей день, даже когда она чёрно-белая. Довольно неординарный и редкий случай.

Почему так сделано? У этого нарушения паттерна может быть целый сонм причин, конечно же производных от "ради прибыли". Одна из которых в том, что это могло быть сделано специально для увеличения активности. Большая броская плашка тем более когда-то в красном цвете так и просила удалить себя с экрана прямо на бессознательном уровне, что можно сделать нажав на неё и подписавшись даже на тот канал, на который не особо и хочется. Кто знает, насколько этот ход прибавил активов корпорации google...

На а может быть и не по этой причине. Так или иначе, всякий устойчивый паттерн нет-нет, а кто-то да нарушит своим удачным и строго специфическим примером.

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

Всем пока!


Раскрыть

О контенте

Горячо приветствую вас, мои изумрудные! Небось хотите немного теоретической базы? Нет? Так её и не будет!
Ведь этот пост о куда более заумной хуете глобальных вещах.

Короче, есть интересная мысль, но донести её без серьёзного захода не получится. Поэтому текста будет многовато.

Для начала нужно вот какую вещь определить: кто есть юзер для пипмай? А дело в том, что юзер для пипмай - он буквально в двух разных ипостасях выступает. Потому что с одной стороны он потребитель контента, а с другой, его создатель. И причём разный юзер в разной степени, даже крайности имеются: есть такие, которые только посты заливают, а есть и такие, которые ридонли вообще.

Я даже картиночку запилил, для пущей визуализации:

Чего хочет юзер как создатель контента? Хочет, чтобы его контент был востребован. Это вообще просто.

Чего хочет юзер как потребитель контента? Хочет, чтобы контент был ему интересен. 

Логично предположить, что чем лучше ресурс удовлетворяет оба этих желания, тем более востребован он будет.

То есть задача сделать так, чтобы юзер в ленте видел как можно больше того, что хочет видеть, и как можно меньше того, что он не хочет видеть. Это же в свою очередь обеспечивает и доставку контента к тому, кем он востребован. 

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

Итак, каким образом юзер сам иль не сам может идти к достижению своей цели, то есть к тому, чтобы видеть только интересный ему контент? Иными словами, как должна осуществляться фильтрация контента?

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

-----------------------------------------------------
Итак, стратегия первая: коллективная. Фильтрация контента обеспечивается коллективно.

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

Вот это та хуйня, что сейчас есть, если кто не понял. Реализовать такую стратегию позволяет этот самый механизм с плюсами, минусами и рейтингом.

-----------------------------------------------------
Стратегия вторая: индивидуальная. Фильтрация контента обеспечивается индивидуально.

Юзер смотрит контент и подписывается на тот, что ему нравится, а тот, который ему не нравится, закидывает в игнор. Таким образом формируя себе ленту, посты в которой наиболее интересны лично ему.

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

-----------------------------------------------------

Чтобы потом не попутаться насчёт стратегий фильтрации контента:

Стратегия: коллективная
Механизм: оценки-рейтинг

Стратегия: индивидуальная
Механизм: игнор-подписка

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

-----------------------------------------------------

Вроде разобрались с этим, но на всякий случай промежуточно резюмирую: в рамках UGC (User Generated Content) ресурсов, в частности пипмая, есть базовая необходимость фильтровать отображаемый юзерам контент. Делать это можно в рамках минимум двух стратегий: коллективной и индивидуальной. Коллективная стратегия - когда решение о жизнеспособности контента принимается в той или иной мере всеми пользователями ресурса и распространяется так же на всех пользователей. Индивидуальная стратегия - когда решение об отображении контента каждый юзер принимает лично и только для себя. Есть несколько видов механизмаов, обеспечивающих работу как одной, так и другой стратегии.

-----------------------------------------------------

Теперь о проблеме: попытка осуществлять сразу две стратегии фильтрации контента в рамках одного ресурса неизбежно приведёт к полной хуйне с этой самой фильтрацией контента.

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

- Зачем механизм оценок, если можно просто кидать в игнор неинтересный контент, а на интересный подписываться?

- Зачем подписываться и кидать что-то в игнор, если есть механизм оценок, подразумевающий постановку негативных оценок неинтересному контенту и позитивных - интересному?

А в руках у юзера есть оба механизма, если что! И никто не обязывает пользоваться только одним из них.

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

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

А если это так, то есть очень немалая вероятность того, что предположение о том, что попытка осуществления коллективной и индивидуальной стратегий фильтрации контента одновременно, ни к чему хорошему не приведёт.

Не в попытке ли вывезти весь этот конфликт стратегий отменили минусы на пикабу? Не по этой ли причине лайки и дизлайки на ютубе стали чисто декоративной хуйнёй? 

И если так, то что делать?

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

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

-----------------------------------------------------
На большом количестве юзеров коллективная стратегия начинает сильно сдавать. Лента становится сильно заполненной контентом низкого качества, чтобы как-то этого избежать, её приходится разделять на всякое "свежее", "горячее", "лучшее" и так далее. А решающим коллективом становится только относительно небольшая часть от всех юзеров, так называемые "рыцари свежего". Дальше-больше: оказывается, что народу в широком смысле нахуй не нужно никакое творчество и уникальность - нужны только годные мемасики. И коллективная стратегия фильтрации контента к этому ведёт как ручей к реке. И вот уже когда-то продуцирующий уникальный авторский контент ресурс представляет из себя рядовую срань преисполненную баянами и шуточками, а также баянистыми шуточками.

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

-----------------------------------------------------

То есть, осознанно или нет, в процессе своего развития UGC ресурс вынужден на определённом этапе переходить от коллективной стратегии оценки контента к индивидуальной. И по сути так на практике и происходит, если присмотреться внимательно к другим ресурсам. Тенденция одна: система оценок, так хорошо себя показавшая, идёт по пизде.

Тут мне сейчас скажут: "это что, бля, система рейтинга на пипмай в каком бы-то ни было виде со всеми плюсами и минусами будет застрелена её же разработчиками?" - Да. Хотят они того или нет, если ресурс продолжит развиваться, то это придётся сделать очевидным или неочевидным способом.

Однако, думаю, если подходить к делу перехода от одной стратегии к другой с должным пониманием и умом, можно добиться куда более эффективного развития, не спотыкаясь о те камни, на которых ломают ноги другие ресурсы, и не пытаясь продлить жизнь отслужившим своё механизмам, понапрасну растрачивая силы. Качественный переход, осуществлённый быстро и осознанно, не смотря на краткосрочные негативные последствия, в итоге будет лучше долгосрочной стагнации. Иными словами: грамотно подготовив почву убить механизм оценки-рейтинга на пипмай безжалостно и одним махом в будущем будет куда лучше, чем пытаться спасать его всеми силами, и позволяя ему тем самым продолжать отравлять ресурс. Но это в будущем, когда/если народу станет больше хотя бы 10к. А пока этот механизм весьма полезен и его нужно совершенствовать, о чём уже было в одном из предыдущих постов.

В общем, надеюсь, мысль свою я донёс в надлежащем виде.

На этом, пока, пока, ненаглядные мои.


Раскрыть

О рейтинге постов

Здрасте здрасте, мои ненаглядные! Угадайте, что у меня есть для вас? Да это же ваша любимая теоретическая база! *Пипчанские яшперицы агрессивно шипят* Но-но! Полегче! Это скучно. Но это и важно.

Сегодня про анализ той информации, которую можно собирать и получать из постов. Так что не совсем только про рейтинг будет.

Итак, для начала надо определиться, какие параметры можно получить с опубликованного поста в процессе его существования. Я уже постарался, так что вот списочек:

Pg - PositiveGrades, количество плюсов

Ng - NegativeGrades, количество минусов

Us - UsersSeen, количество пользователей, видевших пост в ленте

- ViewsComments, количество захождений в комментарии поста

Uvс - UsersViewedComments, количество пользователей, заходивших в комментарии поста

С - Comments, количество комментариев

Uc - UsersCommented, количество пользователей, оставивших комментарии 

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

Отдельно стоит заметить, что даже и C - ужасно непоказательные параметры. считается от количества заходов в комментарии, даже если это делает буквально один и тот же пользователь. Можете сами убедиться в этом, прожав "обновить страницу" несколько раз, когда вы зашли в комментарии к посту - количество просмотров будет повышаться на 1 с каждым обновлением страницы. Этот параметр отображается под пиктограммой в виде мишени возле поста.

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

Теперь представим, что все означенные параметры из списка собираются. Какую информацию можно было бы получить на их основе?

Для начала самое очевидное:

R = Pg - Ng

где:

R - Rating, значение рейтинга поста

Pg - PositiveGrades, количество плюсов

Ng - NegativeGrades, количество минусов

И да, R - это буквально тот самый рейтинг поста, который есть сейчас. Его значение показательно: отражает, насколько сильно вверх или вниз тянет этот пост рейтинг пользователя, его опубликовавшего.

 

Далее можно рассчитать то, насколько пост не оставляет равнодушными пользователей:

W = (Pg + Ng) / Us

где:

W - Warmth, неравнодушие пользователей

Pg - PositiveGrades, количество плюсов

Ng - NegativeGrades, количество минусов

Us - UsersSeen, количество пользователей, видевших пост в ленте

W буквально отражает, какая часть от общего числа пользователей, видевших пост, поставила ему оценку. Диапазон значений от 0 до 1, где 0 - никто не поставил оценку, 1 - все, кто видел пост, оценили его.

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

 

Ещё один любопытный показатель: насколько пост вызывает желание зайти что-то обсудить или посмотреть, что там думают на его счёт. Разумеется, он может быть объективным только если количество комментариев C не будет отображаться, как это делается сейчас.

A = Uvc / Us

где:

A - Attraction, насколько пост завлекает в свои комментарии

Uvс - UsersViewedComments, количество пользователей, заходивших в комментарии поста

Us - UsersSeen, количество пользователей, видевших пост в ленте

0 >= A >= 1; Репрезентативность: Us. A отражает какая часть пользователей из тех, кто видел пост, заинтересовалась его обсуждением, зайдя в комментарии.

 

И самое, пожалуй, интересное - обсуждаемость поста:

По сути этот параметр находится в прямой зависимости от количества людей, оставивших комментарии, и количества самих комментариев. Можно просто получить произведение для C и Uc.

Например если в комментариях отписалось 8 человек, а всего комментариев 48, то обсуждаемость = 8 * 48 = 384, а если пришёл 9-й и написал ещё комментарий, то уже 9 * 49 = 441. В таких числах сложно ориентироваться - они достаточно быстро растут и очень сложны для анализа.

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

D = ln(C) * ln(Uc)

где:

D - Discussion, уровень обсуждаемости

С - Comments, количество комментариев

Uc - UsersCommented, количество пользователей, оставивших комментарии

Что отдельно приятно в этой формуле: если 1 человек оставил под постом сколько угодно комментариев, то обсуждаемость будет равна 0, потому что ln(1) = 0. То есть логика такова, что если нет хотя бы двух человек, оставивших комментарии, то ничего не обсуждается.

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

На примерах:

Под постом 25 комментариев от 3-х юзеров. D = ln(25) * ln(3) ~  3,54

Тут присоединяется ещё один, написав один комментарий. D = ln(25 + 1) * ln(3 + 1) ~ 4.52 (рост обсуждаемости почти в единицу)

И ещё один: D = ln(26 + 1) * ln(4 + 1) ~ 5.30 (рост уже заметно меньше, чем на 1)

Но вот если никто новый не приходит, то вот на 5-х +10 комментариев и: D = ln(27 + 10) * ln(5) ~ 5.81 (рост не такой значительный: +0.51 за прибавку в 10 комментариев)

Пишут ещё +10 комментариев и: D = ln(37 + 10) * ln(5) ~ 6.19 (+0.38)

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

 

Ну и как обычно в финале ответ на вопрос: "нахрена, а главное зачем?"

Да на самом деле за тем же, зачем и всегда: для работы всяких автоматизированных систем ресурса. Много чего можно придумать. Статистику опять-таки для анализа собирать, по пользователям или по тегам, например. Как привлекают посты с тегом "политика" или насколько обсуждаемы с тегом "NSFW"...

В общем, теоретическая база на то и база, что не ней уже можно какую-то теорию базировать, что от чего зависит, выявлять. Ведь чтобы когда-то выяснить, что F = m * a неплохо сначала понимать что за m, a и F такие.

А на этом пока всё, граждане пипчане. До новых встреч!


Раскрыть

О пикабу

Настало время кое-что обсудить.

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

Это тем более смешно, если учесть, что пипмай очевидно сделан подобием пикабу, и укомплектован народом с пикабу, как бы кому ни были неприятны эти факты.

И по этому поводу очень даже есть что сказать. И чисто для разнообразия, чтобы пост не состоял целиком из сухой логики и здравого смысла, надо бы что-то юмористическое тоже привнести.

И почему бы тогда не оформить рассуждения как спор с рэгдолл-оппонетом?

ИТАК, ВСТРЕЧАЙТЕ:

Консервативный, агрессивный, упорный - петушок Кокоша!

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

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

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

Кокоша, ты не прав. Далеко не всех я заебал, не смотря на все старания. Ты просто пытаешься выдать своё личное мнение за мнение большинства. Но мне же видно, кто поддерживает мои посты и держит рейтинг выше нуля, хотя почти все эти люди и не пишут комментариев. Их мнение молчаливо, но это пока. Пока нет безопасного способа его выразить, не рискуя быть заклёванным - но он, этот способ, кстати сказать, уже на подходе - разработчики не в мух смотрели всё это время.

Теперь о пикабу.

Да, пикабу скатился. Да, он завшивел мусорными постами, баянами и рекламными вставками. Модерация превратилась в охоту на ведьм. И, конечно же, решения "эффективного" менеджмента позволили всему этому добру превратиться в помойку наиболее быстро и качественно.

 

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

Это да, отмена минусов на пикабу, конечно, серьёзно всколыхнула сообщество и спровоцировала отток пользователей к конкурентам.

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

Но, если присмотреться и призадуматься получше, то можно заметить, что пикабу в принципе полон непродуманных решений. И система рейтинга, и "горячее" как явление, и подписка на пользователей и тэги - очень много чего сделано через жопу, без теоретического обоснования и оглядки на последствия. И сделано задолго до того, как пикабу был продан. То, что новые "эффективные" менеджеры в попытках как-то починить худо-бедно работавшее, сломали весь карточный домик к хуям - уже просто закономерный результат. Не покупай б/у сайты у незнакомцев.

А я и не сомневался.

Но, к сожалению многих, в объективной реальности очень редко есть что-то однозначно хорошее или однозначно плохое. Почти все явления имеют как светлые, так и тёмные стороны. И пикабу не исключение. Далеко не все механизмы этого ресурса плохие и непродуманные - там всегда есть что подсмотреть и чему поучиться.

 

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

Что уж говорить о том, чтобы кто-то пытался тут своими публикациями вредить ресурсу? Зачем? Пипмай - это от силы 1.5к хоть сколько-нибудь активных пользователей - и это очень оптимистичная прикидка. Не конкурент для пикабу ни сегодня, ни в обозримой перспективе. Альтернатива - да, если очень постараться, но не конкурент ещё лет 5 точно.

И самое важное: пипмай ещё сырой до ужаса. И развивается очень медленно.

Возможностей мало, риски наделать ошибок огромные. Не обращать при всём этом внимания на удачные, проверенные временем решения на других ресурсах было бы просто глупо. Особенно касательно решений по UX/UI. Учитывая, что специалисты такого профиля в команде разработчиков пипмая если и есть, то мёртвые.

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

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

Предложения на то и предложения, чтобы их высказывать. Это не значит, что так будет решено сделать и что в итоге гарантированно создадут условия, в которых у тебя начнут гореть перья в хвосте. Хотя по-хорошему уже давно пора. 

Так или иначе, пипмай должен и будет развиваться (ну, если разработчики не плюнут на это дело в один прекрасный день, что тоже вероятно). И на этом пути очень полезно критически мыслить и объективно анализировать такие источники стороннего опыта, как пикабу в том числе.

Вот, характерный пример обратного процесса.

В общем, кратко резюмирую.

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

С одной стороны: не копировать ради копирования, с другой: смотреть и учиться.


Раскрыть

О показательности рейтинга пользователя

Возрадуйтесь же, мои ненаглядные пипчанские яшперицы! Ибо вот он, очередной пост - пухленький, текстовый, насыщенный самой желанной, самой нежной и мягонькой теоретической базой! *отборная матерщина в зале* - Ой да ладно! Я надеялся, что вам хоть чуток нравится...

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

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

Да, граждане пипчане, одним пинком систему рейтинга не починить.

Вот вам пример: за свои посты юзер1 имеет -300 рейтинга, и юзер2 тоже имеет -300 рейтинга. Разница только в том, что юзер1 получил 50 плюсов и 350 минусов, а юзер2 получил 10,000 плюсов и 10,300 минусов. Посты юзера1, получается, минусило 7 из 8-и человек, поставивших оценку, а вот у юзера2 соотношение очень близко к 50/50, а колебание рейтинга в +/-300 пунктов по сути вообще погрешность.

И если юзер1 скорее всего что-то такое прям неодобряемое публикует, то юзер2 просто затрагивает в своих постах очень неоднозначные темы (что по факту куда полезнее для развития ресурса, чем однозначные, но об этом в последующих выпусках).

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

Такое происходит в основном потому, что рейтинг показывает только разницу в количестве набранных пользователем плюсов и минусов.

У такого подхода есть существенные изъяны:

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

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

Я уже предвижу кокоментарии из разряда: "на пикабу работало!". Граждане пипчане, пикабу стал популярен в первую очередь по той простой причине, что у него вообще не было конкурентов в той нише, которую он занял - там можно было реализовывать всякое непродуманное говно - и оно допускалось, потому что ничего альтернативного не было вообще. Сейчас другая обстановочка.

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

R = (P-N)/Gt

Где:

R - Rating, рейтинг

P - Positives, количество позитивных оценок

N - Negatives, количество негативных оценок

Gt - GradesTotal, общее количество оценок

Вроде бы отличный вариант получается. Значение R всегда будет лежать в пределах от -1 до 1. Умножить на 100% или лучше на 1000 промилле и вот он - прекрасный рейтинг, ограниченный сверху и снизу.

Например: юзер1 за посты имеет 1000 плюсов и 750 минусов. Тогда его рейтинг по постам:

P = 1000 - столько плюсов получил

N = 750 - столько минусов получил

Gt = 1750 - столько всего оценок

R = (P-N)/Gt = (1000-750)/1750 = 250/1750 = 0.143

Домножаем на 1000 и получаем красивое значение в 143 пункта рейтинга.

Но и у такого подхода к учёту рейтинга есть свои проблемы в виде слабой репрезентативности на малых количествах оценок, и накапливаемой "устойчивости".

Проблема с репрезентативностью есть чисто технический вопрос, решаемый большим числом способов.

А вот накапливаемая "устойчивость" - куда хуже и деструктивнее, и является изъяном самой такой системы рейтинга. Впрочем, она существует и у той системы, что реализована сейчас.

О чём вообще речь идёт, на примере:

Юзер1 имеет 10 плюсов и 5 минусов, юзер2 имеет 1000 плюсов и 500 минусов. Их рейтинг по системе со средним арифметическим будет одинаковым: 333.

Но вот и юзеру1 ставят минус, и юзеру2 ставят минус. Тогда рейтинг юзера1 становится (10-6)/16*1000 ~ 250 (-83), а у юзера2 получается: (1000-501)/1501*1000 ~ 332 (-1). Разница по воздействию весьма разительная: юзер1 за 1 поставленный ему минус потерял целых 83 пункта рейтинга, а юзер2 всего 1 пункт.

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

Как это исправляется? Довольно просто: берутся не все оценки пользователя, а какое-то количество последних, например 1000, то есть сколько бы юзер ни набрал оценок, считается только на основе последних 1000. В этом случае, все юзеры, имеющие больше 1000-и оценок, оказываются в равных условиях относительно колебания своего рейтинга.

Разумеется, чтобы не хранить гору больших значений, можно воспользоваться динамическим вычислением. На примере кода C#:

float _rating;

int _total;

int CalcRating(int grade)
{
     _total ++;

     if(_total > 1000)
          _total = 1000;

     float neoRating = (grade - _rating)/_total + _rating;

     _rating = neoRating;

     return (int)Math.Round(neoRating*1000);
}

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

И да, такой способ вычисления становится немного неточным, после достижения потолка для значения _total, но эта неточность является несущественной, да к тому же общей для всех вычислений рейтинга.

В общем, там во главе угла только формула, которая позволяет получить среднее арифметическое от _total количества оценок. Из хранимых данных только рейтинг пользователя в сыром виде и количество оценок.

Как работает: вот у нас есть рейтинг пользователя 250 (_rating == 0.250), а оценок у него уже 25 (_total == 25). Ему ставят плюс (grade == 1). Тогда:

_total ++; // 25+1=26

neoRating = (1 - 0.250)/26 + 0.250

// neoRating == 0,27884615384615384615384615384615

В качестве результата, если я ничего не напутал (а я это могу), выдаст новый рейтинг, равный 279

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

И чем же хорош рейтинг, рассчитанный таким способом?

1) Не уходит в заоблачные значения, поскольку ограничен диапазоном от -1000 до +1000 (ну или сколько угодно, диапазон можно сделать буквально любым)

2) Не увеличивает собственную "устойчивость" со временем. Да, рейтинг бывалых юзеров будет меняться слабее, чем у новорегов, но не слабее определённого уровня, когда количество полученных оценок превысит 1000 (как и с диапазоном, тут можно сделать другое число). По сути начав пороть неодобряемую херь, юзер с 5-летним стажем сольёт свой рейтинг так же ловко и быстро как юзер-первогодка, потому что миллионы оценок, набранных за долгий строк пребывания на ресурсе, не делают рейтинг старожила сверхустойчивым.

3) Намного более показателен, как параметр, отражающий общую популярность контента, публикуемого пользователем (особенно если предварительно разделён на рейтинг от постов и рейтинг от комментариев). Рейтинг по постам в 750, высчитанный по данной системе, буквально значит, что юзер получает в среднем 4 плюса на 1 минус за свои посты, то есть весьма одобряем сообществом.

4) Позволяет более гибко настраивать систему автоматического бана пользователей. Например, можно настроить бан за рейтинг < -500, то есть когда в среднем на один плюс юзер получает 3 минуса на протяжении определённого времени.

Довольно очевидная проблема заключается в том, что рейтинг, рассчитываемый таким способом, первое время очень нерепрезентативен. Например, если юзер имеет всего 3 оценки: 1 плюс и 2 минуса, то его рейтинг будет -333, что вроде выглядит как жуткая жуть, однако на деле всего лишь результат огромной погрешности расчёта из-за недостаточно большого объёма данных. Это же в свою очередь производит и смежный эффект, в виде серьёзных скачков значения рейтинга на ранних этапах деятельности пользователя. Тот еже рейтинг в -333 за счёт 1-го плюса и 2-х минусов, станет 0 при получении 1-го плюса, то есть наберёт сразу 333 пункта.

Эта проблема может быть решена, в частности, методом "забивки нулями". То есть когда рейтинг новорега изначально ставится в 0, а значение количества полученных оценок устанавливается каким-то существенным значением, например, 100. Как будто он получил сотню нулевых оценок.

Первые оценки новорега в таком случае повлияют на его рейтинг не сильно. На примере: _rating == 0, _total == 100, grade == 1 (плюсик поставили), тогда:

_total ++; // 100+1=101

neoRating = (1 - 0)/101 + 0

// neoRating == 0,00990099009900990099009900990099

И рейтинг новорега поле первого плюса сменится с 0 на 10. В случае, если бы изначально _total == 0, рейтинг с 0, сменился бы на 1000 (максимально возможный) сразу после первого плюса. Легко проверить, заменив в формуле значение 101 на 1.

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


Раскрыть