@matimatik Ну, тот же velvet-bird здорово портит треды: в жаббере после bl его уже не видно, а вот в вебе — вполне (запилить соответствующий патч, что ли?). Зашёл сейчас на главную, а там поток какого-то идиотизма про мокрые писечки, стену, Windows Cirno, какая-то хрень про секс, про Кадырова, смищные картинки… Аж где-то внизу маячат записи о снах @l29ah, а посреди всего этого моря бреда плавает пост о телевизоре @o01eg. Я сноб и хочу обратно мой bnw, в котром я знаю каждого и каждый знает меня.
@matimatik Мне больше нравился тот bnw, который клуб по интересам. Если движение подчинено некой тематике — то это прекрасно. Если же это просто «я посрал» и «глядите, какая паста» — то ну нафиг.
Как альтернатива, даже эти (почти не имеющие смысла, с моей точки зрения) посты можно объединять в клубы (для моих примеров — «log» и «пасты», например).
@matimatik А, пределы? Ок-ок. Мне просто сразу представились картинки, где под неограниченным интегралом идёт корень из котангенса какой-нибудь запутанной фигни :)
Касательно логической капчи — идея, как по мне, замечательная. Правда, непонятно, как такое счастье генерировать. Или просто посидеть вечерок и написать пару сотен вопросов?
@matimatik Теряется возможность убить скуку, зайдя на bnw.im и почитав, чем живёт bnw сегодня. Раньше я там мог увидеть много осмысленного контента, пусть и не всегда интересного мне. Что я вижу там сейчас, я уже описал в D0Q, и меня это не устраивает.
@matimatik Лента мне и так сыплется в Jabber. Речь именно о том, чтобы отойти от своих предпочтений и почитать вообще всё, что пишет народ. Клубы и теги это, конечно, решение, но их же много. Читая весь bnw, я могу наткнуться на человека, постящего про какую-нибудь интересную штуку, о которой я раньше даже не слышал. Ползая по клубам/тегам, я мог бы его не заметить, т.к. клуб/тег показался бы мне какой-то ерундой.
И я таки настаиваю на том, что это снобизм, а не желание превращать bnw в ресурс по развлечению великого и прекрасного меня. Общая планка качества постов понижается, и это печалит.
@minoru Чтобы скрывалось и в вебе давно в TODO, да там и достаточно просто, собственно. Пока руки не доходят.
Странные вы. Стоило 5 людям зарегистрироваться (kurkuma, овермайнд, боровков, вилади, ещё кто-то), как сразу какая-то паника и упадческие настроения. Напоминает старушек перед подъездом, готовых с охотностью поносить всех выходящих оттуда жильцов, но как все уйдут на работу, так им и делать нечего. Не болячки (читай: анархию, велики) же свои тысячу раз надоедшие обсуждать?
Ресурс будет развиваться независимо от вашего желания. Даже сильно-модерируемые сообщества очень тяжело направлять в нужную сторону, чего же вы хотите от свободной платформы для блоггинга.
Рекомендую почитать эту памятку. Когда я в первый раз её увидел, я не понял нихуя. Только спустя пару лет постепенно начал доходить смысл. Она ещё для того двоща, но годится для любых ресурсов, обеспокоенных проблемой «не торт». Если возникает такая проблема, то ресурс болен. Но не раком, а думающими о раке. Пока ты занимаешься бесполезной вознёй, ты делаешь только хуже для всего ресурса. Это подогревает интерес к проблемам и делает их сильнее. Правильно заниматься конструктивной деятельностью и таким образом очень сильно помогать ресурсу. Собственно, это краткий пересказ памятки, лучше сам почитай.
Как думаешь, много на хабре, лепрах и дёрти любителей поговорить о том, как всё уже не то? А что было бы, если никто не писал новые статьи? А что было бы, если бы никто не говорил об упадке, а только писал статьи?
@matimatik Самой объективной метрикой качества, которая приходит в голову, является степень «бессмертия» поста. «Я поел» интересует трёх с половиной людей в течении пятнадцати минут. «У меня новый телек: <модель>, <поддерживаемые форматы>, <возникшие траблы>» может иметь ценность в течении пяти лет. «Поставил exherbo, <проблемы>, <решения>» может иметь ценность в течении десятка лет (у тебя эти проблемы сегодня, у какого-то дебианщика — через десятилетие :)
С доводами я полностью согласен, я понимаю, что народ приходит и ничего с этим не поделать (более того, делать с этим тоже ничего нельзя — ресурс открыт), но эмоции-то не так просто подчинить логике. Можно декларировать бугурт.
@kagami У меня руки дошли. Я, правда, так и не раскурил архитектуру bnw и потому понятия не имею, куда мне смотреть :(
Что касается доводов: памятку сейчас почитаю, судя по пересказу, мне и правда не помешает. Как я уже сказал в 9WD, меня уже убедили, осталось только дождаться, когда схлынут эмоции.
@minoru В bnw_web/site.py в хэндлерах MessageHandler, MainHandler (и ws-версиях) надо добавить для залогиненных юзеров запрос блэклиста и фильтрацию с учётом него. Дальше там сам найдёшь.
С тредом понятно, а вот с главной не очень. Пагинация по 20 сообщений на страницу, а что если там 10 от заблокированных юзеров? Будет как-то коряво.
@kagami@matimatik указал на ещё одну проблему: нужно оставить какой-то путь для просмотра всех комментариев, вроде добавленя ?show=all. Мне кажется, что на это можно не заморачиваться — если хочешь увидеть истинное лицо ресурса, разлогинься и делай это как истинный Анонимус.
@minoru Сдаюсь T_T Я покурил хэндлер bl, почитал схему для БД, туториал по MongoDB, {Main,Message}{,Ws}Handler, но не понимаю, как всё это взаимодействует. Асинхронность с yield и defer вообще провоцирует о стенку убиться. Не могу на это смотреть больше.
@matimatik Осилил. Я не осиливаю представить состояние системы в каждый момент времени. Претензия к yield в том, что асинхронность в явном виде и управляется программистом вручную. defer вроде попроще, но опять-таки вносит неразбериху и мешает понять, какие шестерёнки в какую сторону крутятся.
Да, пользуясь случаем, выражаю признание героизму @stiletto и @kagami — я бы с даже echo-сервер не написал с такими-то примитивами.
@matimatik Весь код bnw я не читал, но из того, что видел, ничего сколь-нибудь функционального не припоминаю. Воткнутый где-нибудь return map(lambda x: …) не делает код функциональным. Из прочитанного за сегодня больше всего выносила магия self: когда нам нужна какая-нибудь хрень, которую в функцию в явном виде не передали, мы чудестным образом извлекаем нужные данные из self, как голубя из платка. Собственно, решение тут очевидно: читать от функции вверх и пытаться понять, на что self ссылается, что я и сделал.
@minoru Я просто уже до этого знал твистоду и писал даже свой сервис, чем-то похожий на бнв. Вот очень хороший туториал, если хочешь разобраться: http://krondo.com/?page_id=1327
Там на самом деле ничего сложного, просто несколько новых концепций и абстракций по сравнению с синхронным программированием. Если уже программировал что-нибудь в асинхронном стиле, то будет проще.
@matimatik Пардон, я слова про смешанную парадигму воспринял как намёк на то, что код не только в императивном стиле. self я магией обозвал не потому, что не знаю, что это, а потому, что сходу совершенно непонятно, что за данные хранятся в объекте (и что за объект вообще — без типов сложно, без монад печально). Методы функциями обозвал случайно.
@minoru Обычный duck typing. Скриптовые языки все такие же. Кстати, функции как объекты первого класса — это тоже часть функциональной парадигмы, а на ней весь твистед построен. Так что можно сказать, что он частично функциональный.
@minoru Нет. https://en.wikipedia.org/wiki/Duck_typin.....mentations
Дак тайпинг это и есть слабая типизация. В python, кстати, получше чем в перле, пхп и яваскрипте будет — нельзя сделать 1+'1' и получить два (точно не помню, но как-то там складывается) и нет необходимости в ===.
@kagami Н-дя, что-то я вообще загнался. Касательно «duck typing только в Python» был неправ, признаю. Но duck typing ортогонален слабой или сильной типизации. Что сильная, что слабая в динамическом сеттинге имеют свои недостатки (а именно, объекты приходится кастить вручную либо они кастятся сами, но не всегда подразумеваемым образом).
@matimatik А вот как раз .type() и isinstanceof() при утиной типизации не используют, т.к. ломает подход — нас внезапно начинает заботить, чем является объект, а не что он умеет.
@matimatik Это скорее стиль, чем свойство языка (последним утиная типизация может быть лишь в случае, когда функций isinstanceof(), type() нет вообще). В Python это одна из частей философии, насколько я заметил.