Предлагаю оживить форум

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

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

Что мне не нравится в чатах и что может исправить форум

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

Чатопроблема первая: масштабирумость

  • Плохая асинхронность.

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

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

  • Сложность параллельного обсуждения нескольких тем.

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

  • Сильно ограниченная масштабируемость.

    Я не знаю как это называется по-умному, но у чата есть параметр, который я обзову “скоростью” - насколько быстро в нем появляются новые сообщения.

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

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

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

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

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

Чатопроблема вторая: обнаружение и поиск

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

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

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

Форум в этом плане решение старперское и надежное: кроме внутреннего поискового движка, индексируется гуглом и остальными поисковиками со всей мощью их искалок.

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

Вопросы с форумом

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

Меньшая интерактивность и неповоротливость

Форум правда несколько менее интерактивный/оперативный. Если вопрос дико срочный, то для них остается чат.

@Pzixel июль 13 16:41

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

только вот я не стал бы таким заниматься

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

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

Если для части членов сообщества это все-таки критические временные затраты, то чаты никто не выключает. :slight_smile:

Переутяжеленность discourse движка

@chabapok:

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

В целом оно немного “вебдванольное” слишком, но я бы не сказал что прям жесткий перегиб с этим. По современным меркам он дажегде-то в середине диапазона “тяжеловестности”. С точки зрения производительности ни на ноуте, ни с телефона у меня проблем не возникает.

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

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

Уведомления

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

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

В том числе, думаю, должно быть вполне реально настроить кидание ботом сообщения в “genеral” гиттер чат о создании новой темы на форуме.

Плотность информации

Ссылка на сообщение @pzixel из соседней темы

Насчет большей плотности информации в чате. Вот сегодняшний пример типичного, как мне кажется, разговора в гиттере:

Dmitriy @dpogretskiy 12:37
да, именно потому что alloc::String
можешь намутить свой тип, с буфером который Sized

zhukovskiy @Pzixel 12:38
не могу
мне нужно именно для строк
и векторов

Dmitriy @dpogretskiy 12:38
в котором какой нибудь убогий null terminated стринг :)

zhukovskiy @Pzixel 12:38
вообще я посмотрел
взрослый serde_json если в no_std перевести всего 4 ошибки компиляции выдает

Dmitriy @dpogretskiy 12:39
ну и с вектором тоже самое, фигач в массив, и ломай все если не лезет

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

dpogretskiy                                                               12:38

да, именно потому что alloc::String. можешь намутить свой тип,
с буфером который Sized в котором какой нибудь убогий null terminated стринг :)
ну и с вектором тоже самое, фигач в массив, и ломай все если не лезет.

                                                 [лайк] [поделиться] [ответить]


Pzixel                                                                    12:39

не могу. мне нужно именно для строк и векторов. вообще, я посмотрел,
взрослый serde_json если в no_std перевести всего 4 ошибки компиляции выдает.

                                                 [лайк] [поделиться] [ответить]

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

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

Форум уже давно есть. Был бы нужен - им бы и пользовались уже

@sobaka_v_kepke: Форум есть. Если бы люди хотели там быть - они бы там были.

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

Я о том же. Лучше с флудом, но как-то помогать и просить помощи,
чем оставлять проблемы гнить на форуме.

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

Роль чатов и что писать на форум

Эксперимент с форумом, как я его вижу, ортогонален всем экспериментам с мостами в телеграм, zulip’ом и т.п. Чат в любом случае будет лучше форума справляться с ответами на совсем уж тривиальные вопросы или что-то срочное.

При сосуществовании живого форума и живого чата возникает довольно естественный вопрос “что писать на форум, а что в чат?”.

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

Сейчас в гиттере есть несколько практически пустующих комнат. Если в дальнейшем эксперимент с форумом окажется удачным (хз какие тут точные критерии назвать), то, возможно, стоит в чате оставить только “general”, “offtopic” и переводческую комнаты.

Модерация

@Pzixel: чувствую в новом оплоте счастья диктатура будет еще та)

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

Формат форума

@Pzixel: предлагается на каждый вопрос “объясните future::ok” или
“что такое ref mut” по теме создавать? Тогда количество тем станет
просто бесконечным. …

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

По умолчанию, стоит заводить простые темы вида “изначальная постановка вопроса и ответы на него”.

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

Хорошие примеры мета-тем из англоязычного сообщества:

https://www.reddit.com/r/rust/comments/8z5zlz/hey_rustaceans_got_an_easy_question_ask_here/
https://www.reddit.com/r/rust/comments/8z61m6/whats_everyone_working_on_this_week_292018/
https://users.rust-lang.org/t/twir-quote-of-the-week/328

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

@Pzixel: … Если же начать фильтровать, требовать MRE и прочее,
получится такой костыльный SO #2

Я сам подписан на ржавую метку в SO - https://ru.stackoverflow.com/questions/tagged/rust - и пользоваться им никто не запрещает, конечно.
Собственно, я всеми руками за него и никого не отговариваю задавать там вопросы.
Но формат общения на SO очень жесткий и специфический. Четкий вопрос - четкий ответ. И все, остальное не одобряется. Форум в этом плане сильно более гибкая штука, которая вполне может быть ядром сообщества при правильной организации.

Что предлагаю делать

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

  • Всем сочувствующим - собственно, пользоваться форумом :slight_smile:
    Если у вас есть не совсем уж тривиальный вопрос, то создать под него тему на форуме и кинуться ссылкой в чат. Если есть клевые ссылки - закидывать в раздел ссылок.

  • Закрыть /r/rustycrate в пользу раздела “ссылки”. Постоянно бывает что хорошие ссылки раза по четыре постят за день в оффтопике и general комнатах параллельно.

  • Завести на форуме разделы:

    • offtopic - просто флудильня для обсуждения всего

    • prog_offtopic - оффтопик, но про программирование на других языка

    • showcase (?) - раздел для показа-обсуждения своих проектов участниками?

  • Настроить ботов или расширения:

    • сообщать в гиттер что создана новая тема в качестве напоминания что форум есть и там чего-то происходит.

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

  • Написать небольшое руководство, отвечающее на вопрос “когда стоит создавать тему, а когда лучше сразу пойти в чатик”.

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

Спасибо всем дочитавшим простыню :heart:

15 лайков

Годно, 10/10 :nerd_face:

Хорошо написано.

Согласен по второму пункту, да и собственно в целом, форум - вещь хорошая. Проблема в том, что как по мне, его ниша слишком узкая. Ведь уже есть форумы URLO/IRLO/SO/SORU которые как по мне покрывают 99% потребностей в форумах. Хочешь - на русском, хочешь - на английском. Непокрытой остается только часть вопросов-пятиминуток “ребят, ругается на cannot borrow as mutable and as immutable”. И тут уже решает скорость. Какой бы ни была настройка уведомлений, раньше чем через 5 минут после создания темы на неё не ответят, а скорее всего, ответ будет только в первые полчаса. После этого нужно написать ответ и дождаться, когда человек опять зайдет на форум и прочитает его. По сравнению с типичным временем ответа в гиттере < 1 минуты разница огромная.

Типичный диалог:

Dmitriy июль 17 17:27
господа знатоки, есть ли какие нибудь тулы, чтобы посмотреть alignment структуры?
наклевалась макоспецифичная проблема с libc структурой, у одного моего друга :trollface:
Denis Lisov июль 17 17:28
Кроме println!?
Dmitriy июль 17 17:32
хм, я чего-то не знаю о println!?
Andrey Lesnikov июль 17 17:32
хз, я всегда просто адреса печатал
Denis Lisov июль 17 17:33
Скорее про std::mem::align_of
“тулой” я бы его не назвал, но API есть, да :slight_smile:
Dmitriy июль 17 17:34
на структе висит repr(C) и поля не в порядке, такой же структуры из мана к fnctl
едва ли repr(C) их переставляет местами по имени :slight_smile:
Andrey Lesnikov июль 17 17:34
смутно припоминается что gdb умеет всякие паддинги как-то показывать, но гугл не колется как это сделать
Dmitriy июль 17 17:34
адреса конечно можно паспечатать
ладно, адреса сойдут, ниче особенного, спасибо уважаемые знатоки :slight_smile:

за 7 минут вопрос решен (так или иначе), с 3 вовлеченными людьми. Причем некоторые ответы причинно-следственно завязаны на предыдущие, и просто сгруппировать все ответы вместе как в примере про alloc::String не выйдет.

Собственно да, форум выигрывает во всем, кроме интерактивности, но это и есть киллер-фича и ниша, которая остается незакрытой. Это самое важное, что перекрывает все остальные минусы и в поиске, и в багах на мобильных клиентах (которых я лично к слову так и не встретил), и многие другие. Именно интерактивность - то, что мне кажется нужно. Для обстоятельных подробных рассуждений есть SO и URLO. Кто не знает английского - SORU.

К слову, драконовские меры SO появились не на ровном месте, а потому что отвечать в 100500 раз на вопрос "а почему я не могу написать let s: String = "Hello" люди не любят, и начинают резко и некрасиво отвечать. Пример cyberforum если кто знает о чем речь показателен.

Собственно, в этом и заключается всё моё возражение. То, что форум страдает “лишь” от недостатка интерактивности в условиях существования более удобных площадок (где есть больше ответов/специалистов, где ответ можно получить быстрее, и часто от кого-нибудь из команды ядра) делает его не самым удобным вариантом для общения.

1 лайк

В целом, возражение вполне резонное.

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

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

Я скорее о том что на SO/SORU нельзя обсудить что-то просто связанное с самим сообществом -например, поделки показать-обсудить, что-то про русскоязычные сходки или еще какую-то локальную фигню, не идеально укладывающуюся в формат “вопрос-ответ”, но и слишком обстоятельную для чата.

Но вот да, аналога URLO-то у нас нет.

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

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

Просьба не обновлять Discourse из интерфейса. Иногда это ломается, и тогда чинить надо через SSH. Я буду делать это периодически.

/r/rustycrate хотите прямо сейчас закрыть?

Погуглил - закрывать подреддиты нельзя. Можно просто написать там в описании что он “закрыт” и прикрепить тему в духе “пользуйтесь разделом форума, вот ссылка”.

Что насчёт надёжности форума? Со всякими там гиттерами и телегами всё более менее понятно — их доступность и отказоустойчивость обеспечивается вполне конкретными компаниями с конкретными бюджетами. Не уйдёт ли форум на дно по причине утраты интереса, просроченного хостинга, имени etc.? Заметьте, я не имею в виду кратковременные перебои, хотя это тоже может быть малоприятно, если форумом начнёт пользоваться большое количество народу.

@alghazanth насчёт отказоустойчивости гиттера и телеграма я бы поспорил, вспомнив сбои и блокировку телеграма и aws серверов.

Большое кол-во пользователей != кратковременные сбои.

Думаю, на этот вопрос должен ответить @mkpankov

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

Насчет “отапливаются пуши”, они у меня не работают :frowning: Возможно проблема во мне, но ни на моем андроиде, ни на пкшном броузере не работают уведомления

Форум на нашем VDS, при необходимости купим VDS потолще.

1 лайк

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

2 лайка

Сборка сайта отвалилась, надо будет починить.

Всё остальное что зависело от меня сделал, @ozkriff осталось сделать разделы и написать руководство.

2 лайка

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

Насколько я знаю, над этим идёт работа, да @ozkriff ?

Ага. Хочу вечером завести два раздела под оффтопики + раздел для проектов, в который закинуть тему про Земерот (кто бы сомневался про что я могу тему завести, ха).

1 лайк

Подумал и завел пока два раздела:

Делить оффтопик на технический и обычный пока, наверное, смысла не имеет. Если нетехнических тем станет прям много - тогда и поделим, перенести-то не долго.

/c/lounge (стандартный раздел для пользователей с уровнем доверия >= 3) - пока тоже решил не трогать, потому что он никому не мешает и я слабо понимаю зачем он. Мало ли нужен таки потом окажется.

2 лайка

по поводу lounge

так и должно быть?

У вас нет прав для просмотра запрашиваемого ресурса