Логические операции над тегами / dev :: joyreactor :: предложения :: разработка :: реактор

dev реактор разработка предложения joyreactor песочница 

Логические операции над тегами

Господа админы, а отчего бы не добавить к системе подписки/блокировки тегов возможность использования логических выражений? Это бы было очень полезно для зарегистрированных пользователей.
Вот вам простой пример (про себя любимого, конечно же!): мне нравится эротика, которую тут постят, но я не люблю аниме, поэтому данный тег у меня в блокировке. Однако, у него есть дочерний тег AnimeEroCosplay, который, разумеется, невидим тем, кто заблокировал у себя родительский. Сейчас с этим ничего не поделать: или не включай блокировку Anime и радуйся тому, что теперь 60% контента у тебя - бурятские порномультики, или откажись от любования очаровашками-косплеершами. Если бы работала система логических выражений, то решением проблемы была бы блокировка выражения Anime && !AnimeEroCosplay.
Пример номер 2 (снова о себе любимом): мне не нравится вселенная MLP, но гибрид ее и Вархаммера я обожаю (да-да, такой-то извращенец, не зря получил медальку Ересиарха). Решением было бы выражение MLP && !Warhammer40k.
Думаю, суть понятно изложил, буду признательным, если это введут.
SYMBOLS	MEANINGS	
	LOGICAL AND:	true when all expression areT
		false otherwise F
"II"	LOGICAL OR:	true when either expression is T
		false when both are F
//|//	NOT:	negation ( T F) and vice-versa,dev,реактор,разработка,предложения,joyreactor,песочница
Подробнее
SYMBOLS MEANINGS LOGICAL AND: true when all expression areT false otherwise F "II" LOGICAL OR: true when either expression is T false when both are F //|// NOT: negation ( T F) and vice-versa
dev,реактор,разработка,предложения,joyreactor,песочница
Нужна ли такая фича?
Да
630 (51.3%)
Нет
97 (7.9%)
У меня за такие вопросы во дворе убивают
502 (40.8%)
Еще на тему
Развернуть
Неплохо. Будет как поиск на порнолабе
Jackal Jackal 17.02.201522:01 ответить ссылка 4.2
А я смотрю, у нас тут опытные ребята! Увы, насчет Порнолаба я не знаю, но уж точно знаю, что эта система поможет обойти кучу проблем. Сейчас они частично обходятся адовыми костылями. Так, чтобы не досаждать нежной психики вахалюбов, тег Warhammer не ставится на Пони во вселенной Вархаммера (или что-то в этом духе, точно не помню). И такое много где: заходишь в тег, а там в шапке предупреждение: "Несмотря на то, по факту этот контент относится к %тегнейм%, не ставьте %тегнейм%".
Левелап: использовать регулярные выражения
rumm rumm 18.02.201500:04 ответить ссылка 1.0
Фильтров по названию-то нет - только по тегам. Для них регулярки - лишняя плюшка.
Для простых выражений это проканает, а вот сложные случаи заебешься отлаживать, т.к. логика штука нетривиальная (кто бы мог подумать). Для представления имхо лучше сделать однопроходный скрипт-детектор, например:

– если млп, майпони, ебучие-лошади -- условия через "или"
–– если ваха, вахаебы
––– подписаться
–– игнорить
– если /.*девушк.*/
–– подписаться
– игнорить -- все остальное, если так хочется

Реализация той же сложности, только выглядит не как логическое говно и не требует вывертов при пересечении приоритетов (афаик в сложных запросах они будут). Идея с регулярками в общем-то тоже хорошая, потому что теги многие ставят хуй пойми как.
e38m4 e38m4 18.02.201502:08 ответить ссылка -0.4
Чую, большинство с этим не разберется, а логические выражения каждый школьник знает.
"A && !B" тоже нетривиально, потому что неявная предикативность не даст свободно думать в этих терминах. И уж тем более парсить выражение обратно или отлаживать его.

Допустим ты игноришь 5 тегов: 1..5. Но в фендоме "A" ты разрешил 1..3, а в фендоме "B" – 2 и 5. Попробуй записать это в логической форме – тебе олимпиадная задачка – и я покажу, где ты ошибся. Императивная куда удобнее, потому что первое совпадение *завершает* принятие решения, а в логической нужно экранировать каждый вариант, что вообще нетривиально.

 ▲
▲▲

Если А
  Если 1 2 3
    Игнорить
Если Б
  Если 2 5
    Игнорить
Если 1 2 3 4 5
  Игнорить
// остальное разрешено по дефолту

(или краткая форма с той же сутью)

Если А
  Игнорить 1 2 3
Если Б
  Игнорить 2 5
Игнорить 1 2 3 4 5

Кроме того, если сделать две логических формулы – одну для подписки и другую для игнора, то возникнет проблема приоритетов, что важнее – игнор или подписка – и в каких случаях кто победит.
e38m4 e38m4 18.02.201513:11 ответить ссылка 0.0
"разрешил" –> "запретил только", конечно же.
e38m4 e38m4 18.02.201513:13 ответить ссылка 0.0
Для данного примера согласен, но это уже какой-то клинический случай, сомневаюсь, что будет много настолько сложных юскейсов. Будь уверен, 99% выражений уложатся в 3 аргумента, а 95% - в 2. И у такой "кодерской" система есть минус: она не расширяет текущую, а заменяет. Будем честны: для большинства юзеров использовать даже выражение вида A && B - уже непомерная трудность, поэтому они будут просто блочить теги поштучно, как и блочили. При системе логических выражений это допустимо, просто у кого-то (весьма небольшой группы ценителей) где-то между политота и ЕбучиеЛошади появится Anime && !AnimeEroCosplay.
> Допустим ты игноришь 5 тегов: 1..5.
Вообще, для каждого тега нужно составлять своё выражение, если тег имеет какие-то правила для игнорирования. Для твоего примера, список игнора будет выглядеть так:
1 && !B
2
3 && !B
4 && (!A || !B)
5 && !A
Обрати внимание на тег 4 - игнорить только если он вне фендомов A или B. В какой-то ситуации может потребоваться запись вида
4 && !A && !B
Что означает - игнорить 4 если он одновременно вне фендомов A и B. С императивной записью у тебя это получится?
А что касается приоритетов подписки и игнора, то, как мы ниже выяснили, игнор приоритетнее подписки. С этим проблем не видно. Более того, имея такой мощный инструмент игнора, можно обойтись вовсе без логических выражений для подписки.
Тут в другом камень преткновения. Как верно написал ОП, мало кому это надо, мало кто в этом стал бы разбираться (в чем угодно, будь то логические выражения или императивные цепочки условий). Стало быть, это никто не будет реализовывать.
up4k up4k 18.02.201514:30 ответить ссылка 1.8
"получится?" – да, если кроме "Игнорить" есть еще "Разрешить" (и его разновидность "Подписаться"). Действительно, в императивной записи мы делаем некоторые ебучие случаи сложными (но возможными), но за счет простоты обычных случаев – в этом суть трейд-оффа. В общем-то императив имеет ту же мощность, что и логическое выражение, только автоматически экранирует последующие выражения с помощью прерывания вычислений и выворачивает логику в иерархический вид. А значит разрешающее условие для "4 одновременно вне А и Б" нужно будет внести под оба предиката, например.

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

зы: насчет подписки не уверен – я не подписан, но если бы был, значит хотел бы получать свой контент не копаясь в ленте.
e38m4 e38m4 18.02.201515:44 ответить ссылка 0.0
Кстати, хороший пример. Это дичайше неудобно, составлять километровые цепочки правил для того же iptables, обрабатывающие последовательности условий, вместо того, чтобы поместить все эти условия в одну строку. Но в iptables это необходимо - математически это конечный автомат.
Императив полезен там, где есть состояния. В нашем случае, теги - просто набор флагов. Тег либо есть, либо его нет. Всё можно свести к простейшей логике высказываний, со всеми вытекающими отсюда свойствами. И не лезть в предикаты. Совсем другое дело, что на реакторе уже имеются определенные правила взаимозависимости тегов - фендомы, сообщества. И, учитывая наличие такого рода множеств, сведение системы игнора тегов к булевой алгебре может сыграть злую шутку, тут я с тобой согласен.
Что касается обывателя, подчеркиваю - простейшие примеры из поста можно реализовать обоими методами с равным удобством, люди даже не заметят разницы. Особенно, если со стороны UI это будет реализовано как обычно. Если же углубляться и городить огород - а оно нам надо? =)
up4k up4k 18.02.201517:18 ответить ссылка 0.0
"мало кому надо". Если вы парите в яваскриптах (а нет), то можно написать фильтрующий юзерскрипт и вбросить его на гитхаб. Разве что постов на странице станет меньше, но реактор и так часто тупит в этом плане. По крайней мере мою идею с пейджингом по времени поста, а не по номеру от топа с костылями в куках, никто не поддержал.
e38m4 e38m4 18.02.201515:50 ответить ссылка 0.0
Да, пейджинг тут ярый.
В скриптах я шарю, но, увы, только в серверной разработке на них. Даже с банальной работой на фронтенде никогда не сталкивался. Поэтому могу в кооперации с кем-то написать данную приблуду: я полностью описываю методы логики, которые получают на вход данные о картинках и возвращают результат, а кто-то другой пишет обработку самой страницы.
Не каждый.
Банально сделать приоритет подписки на дочерний тег выше, чем приоритет блокировки родительского. Но кока говорил, что для подавляющего большинства важна блокировка, поэтому он ничего не собирается менять. Так что либо снимай блок с аниме, либо возлюби Бурятию :3
yoburg yoburg 18.02.201513:06 ответить ссылка 1.8
А что, на реакторе нет такого, что (по примеру автора поста), если я блокирую Anime, но подписан на AnimeEroCosplay - то я буду из всего Anime видеть только посты из последнего? Хм, мне казалось, что такое работает, ведь это было бы логичным. Окей.жпег
up4k up4k 18.02.201513:13 ответить ссылка 2.0
Это было бы логичным, но, по-моему, такое уже предлагалось сделать.
>>Банально сделать приоритет подписки на дочерний тег выше, чем приоритет блокировки родительского.
Сработает для решения задачи 1, а вот для второй уже нет.
Для второй задачи есть тег понихаммер :3
yoburg yoburg 18.02.201513:20 ответить ссылка 0.5
Который суть - костыль, так как учитывает только одну сторону (людей, которые блочат Пони, но не блочат Ваху), и совершенно не поможет другой (тем, кто блочит Ваху, но не блочит Пони). В рамках текущего фильтра эта задача нерешаема.
он дочерний тег вахи. т.е. приоритет и на него тогда будет работать
lopus lopus 18.02.201516:31 ответить ссылка 0.0
Да, было бы удобно
Earendur Earendur 18.02.201513:27 ответить ссылка 0.5
и поиск по тегам с этой же системой, это даже нужнее
AGIMgal AGIMgal 18.02.201518:56 ответить ссылка 0.0
А просто сделать black и white листы не вариант?
liberum liberum 19.02.201513:56 ответить ссылка 0.0
Это не даст такой гибкости. Ведь систему логических выражений можно будет использовать и в поиске. Хочешь, например, найти статьи про косплей Путина, ищешь Cosplay && Путин. Или, чуть боле сложный вариан: хочешь найти политику, но ту, которая про отношения России и Украины, при этом отдельно украинская и российская политика - норм: Политота && !(Россия && Украина).
Я сам программист, и знаю, как работают логические операторы. Тут больше вопрос в том, что это не так просто реализовать, как листы, и пользоваться листами проще для подавляющего большинства пользователей. А в плане гибкости да, еще бы и регексы туда бы ))
Да я и не про принципы их работы, а про их применимость здесь. А листы ("Заблокированное", "Читаемое") и так тут есть. Я же не предлагаю заменить листы на выражения, я предлагаю расширить листы возможностью добавления выражений в них.
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
( песочница J ( Комиксы ) ( гифки ) [ красивые картинки ) ( geek ) ( video J ( anime J ( эротика J [ котэ ) ( story ) ( игры j
( anon J[личное j
( Кликабельно )( art )( фэндомы )( секретные разделы )( порно )(+)<
Теги: Введите теги (через запятую) или выберите из списка выше
подробнее»

dev реактор теги предложение

( песочница J ( Комиксы ) ( гифки ) [ красивые картинки ) ( geek ) ( video J ( anime J ( эротика J [ котэ ) ( story ) ( игры j ( anon J[личное j ( Кликабельно )( art )( фэндомы )( секретные разделы )( порно )(+)< Теги: Введите теги (через запятую) или выберите из списка выше
Новый пост
Теги:
песочница Комиксы гифки красивые картинки geek Anime Эротика котэ игры ф anon личное
Комиксы, гифки, красивые картинки, песочница, geek, Anime, Эротика, котэ, игры, anon, личное, Будут автоматически добавлены теги: агСпесочница эротики Заголовок:
подробнее»

dev реактор теги предложение удалённое

Новый пост Теги: песочница Комиксы гифки красивые картинки geek Anime Эротика котэ игры ф anon личное Комиксы, гифки, красивые картинки, песочница, geek, Anime, Эротика, котэ, игры, anon, личное, Будут автоматически добавлены теги: агСпесочница эротики Заголовок: