Спасибо за сообщение. Я действительно пытался учесть это при разработке функции, но, похоже, мне слишком повезло с тестированием Действительно, здесь мы устанавливаем все временные метки в одно и то же значение:
Проблема в том, что мы не хотим вставлять перемещённые сообщения между существующими сообщениями канала, и чем больше сообщений вы перемещаете, тем сложнее это становится.
Прежде чем я углублюсь в это, один вопрос: можете ли вы вспомнить и определить, какие именно сообщения находятся не на своих местах? Их всего несколько, или они полностью перепутаны? Думаю, причина расхождений может быть в том, что при получении сообщений для канала мы сортируем их по ID (в большинстве случаев сортируем по убыванию, а затем разворачиваем):
В то время как в модуле перемещения сообщений я сортирую по created_at, чтобы сохранить порядок, что может вызывать небольшие расхождения:
У меня есть несколько идей, как это можно исправить (возможно, достаточно изменить сортировку в модуле перемещения сообщений на ID или изменить сортировку в контроллере на created_at; я склоняюсь ко второму варианту, так как он кажется более логичным), но мне бы хотелось узнать, насколько сильно нарушен порядок, если это возможно определить.
Я ищу способы запечатлеть суть нового потока чата как демонстрацию того, как чат может стать семенами для более широкого обсуждения.
Есть ли у кого-нибудь идеи, как мы можем это сделать, исходя из того, где мы сейчас находимся с тестированием чата здесь, на Meta?
Пункты обратной связи отличные, и я думаю, что вскоре они будут выделены в отдельные темы, но я надеялся на что-то, что могло бы служить отличным примером для всех, кто только присоединяется к @chat-testers. Что-то, на что люди могут просто посмотреть и сказать: «Ах, да. Сначала я не был уверен, но теперь вижу, как чат может быть предшественником глубокого обсуждения».
Возможно, я прошу слишком многого
RGJ
Честно говоря, я не вижу, как чат может быть предшественником глубокого обсуждения
Но это может быть потому, что я старый.
JammyDodger
Так что мы ищем пример, который поможет переубедить и @RGJ
Moin
Мне нравится пример здесь. Но этот пример не подходит сюда. Возможно, тема могла бы быть о функции, которой вам сейчас не хватает. О чём-то, из-за чего вы не стали бы создавать тему, например, потому что у вас нет времени проверить, есть ли похожий запрос на функцию, или вы думаете, что никто другой не заинтересуется этим.
JammyDodger
@Moin, ваши навыки поиска всегда являются благословением
Я искал что-то о семенах и деревьях, но не мог найти это здесь.
Но, да. Какой-то расслабленный/дружелюбный/неформальный чат, в котором идея формируется в ходе лёгкого диалога, а затем вдохновляет на создание полноценной темы для обсуждения.
oshyan
Это на 100% соответствует моим интересам и сценарию использования чата. Но можете ли вы уточнить, что именно вы имеете в виду под примером этого? Вас интересуют, скажем, образцы чата (независимо от того, происходил ли он в чате Discourse), которые могли бы/должны были бы (очевидно) привести к более глубокому обсуждению и/или привели к более глубокому обсуждению, но в, возможно, менее идеальной среде для этого (чата по сравнению с форумом)? Если это так, мне может потребоваться немного времени, чтобы найти их, но у меня точно есть хорошие примеры из моего сообщества по продуктивности. Если вы ищете примеры в чате Discourse, конкретно, это будет сложнее найти. Но я абсолютно уверен, что это является большой ценностью чата в Discourse, и в зависимости от сообщества это будет играть большую или меньшую роль.
Jonathan_Poyer
Я думаю, что демонстрация обсуждения вокруг новой функции — это на самом деле хороший способ показать её, по крайней мере, в первый момент возникновения этой идеи. Для некоторых людей этот искра обсуждения возникает во время разработки или незадолго до её начала. Всегда есть о чём поговорить, и ссылка на тему (или несколько тем) имеет смысл.
oshyan
Как, возможно, более концептуальный пример ситуации, когда чат может (и должен) быстро превратиться в тему, даже в середине обсуждения, это то, что часто происходит в сообществах управления разработкой программного обеспечения, в которых я участвую, а также в моём сообществе по продуктивности:
Новый человек присоединяется к чату и задаёт, казалось бы, простой или безобидный вопрос.
Ответы от хорошо информированных и/или эмоционально вовлечённых постоянных участников быстро растут до десятков строк текста, начинают появляться разрывы абзацев, и этот канал чата насыщается только обсуждением этого одного вопроса (темы).
Всё становится трудным для ответа, так как каждое «сообщение» включает множество пунктов и идей, а отсутствие функции выбора для цитирования/ответа затрудняет анализ и ответ на каждую часть.
Эти разговоры также часто представляют собой ценные дебаты, которые быстро исчезнут в последующем потоке чата, поэтому даже ретроспективное перемещение их в тему может быть очень ценным.
JammyDodger
Я думаю, что изначально я искал что-то, что мы могли бы предоставить в качестве примера темы/чата здесь, на Meta, чтобы продемонстрировать новичкам в Discourse Chat, как он может гармонично сочетаться с устоявшимися представлениями о «длинных абзацах» в Discourse.
Так что даже что-то, что мы создали специально, чтобы аккуратно продемонстрировать этот принцип.
Хотя звучит так, будто у вас есть много примеров, которые станут отличной темой для обсуждения
Я думаю, что всё, что поможет людям легко представить, где в структуре их форума может вписаться чат, будет полезно. Я открыт ко всем идеям
agungor
Мне кажется, что этот разговор сам по себе становится таким примером.
Jonathan_Poyer
Чувствуется, что то, что на других платформах превратилось бы в ветку, здесь должно либо превратиться в другой чат, либо стать отдельной темой. Но в то же время тема кажется больше похожей на долгосрочное обсуждение, а не на разовое, как здесь?
Это может дать видимость людям, которые не в чате, особенно если тема начинается с вопроса.
Но, иронично, я отвечаю здесь lol.
Хм, я только что попытался процитировать свои ответы здесь в той же теме, но, кажется, у меня есть возможность цитировать только в новую тему, а не в существующую.
JammyDodger
Я как раз обдумывал это. Я пытался понять, могу ли я создать тему, где чат каждого человека будет каким-то образом ответом, так как не было подходящих каналов чата, куда их можно было бы перенести. Но теперь, когда вы это сделали, я вижу, что у этого может быть свой собственный канал чата, и мы можем перенести туда этот разговор
jimkleiber
Ах да, почти как создание темы, которая создаст новый канал чата.
А затем тему можно наполнить только цитатами из чата, выделяя главное.
Это на 100% соответствует моим интересам и сценарию использования чата. Но можете ли вы уточнить, что именно вы имеете в виду под примером этого? Вас интересуют, скажем, образцы чата (независимо от того, происходил ли он в чате Discourse), которые могли бы/должны были бы (очевидно) привести к более глубокому обсуждению и/или привели к более глубокому обсуждению, но в, возможно, менее идеальной среде для этого (чата по сравнению с форумом)? Если это так, мне может потребоваться немного времени, чтобы найти их, но у меня точно есть хорошие примеры из моего сообщества по продуктивности. Если вы ищете примеры в чате Discourse, конкретно, это будет сложнее найти. Но я абсолютно уверен, что это является большой ценностью чата в Discourse, и в зависимости от сообщества это будет играть большую или меньшую роль.
Jonathan_Poyer
Я думаю, что демонстрация обсуждения вокруг новой функции — это на самом деле хороший способ показать её, по крайней мере, в первый момент возникновения этой идеи. Для некоторых людей этот искра обсуждения возникает во время разработки или незадолго до её начала. Всегда есть о чём поговорить, и ссылка на тему (или несколько тем) имеет смысл.
oshyan
Как, возможно, более концептуальный пример ситуации, когда чат может (и должен) быстро превратиться в тему, даже в середине обсуждения, это то, что часто происходит в сообществах управления разработкой программного обеспечения, в которых я участвую, а также в моём сообществе по продуктивности:
Новый человек присоединяется к чату и задаёт, казалось бы, простой или безобидный вопрос.
Ответы от хорошо информированных и/или эмоционально вовлечённых постоянных участников быстро растут до десятков строк текста, начинают появляться разрывы абзацев, и этот канал чата насыщается только обсуждением этого одного вопроса (темы).
Всё становится трудным для ответа, так как каждое «сообщение» включает множество пунктов и идей, а отсутствие функции выбора для цитирования/ответа затрудняет анализ и ответ на каждую часть.
Эти разговоры также часто представляют собой ценные дебаты, которые быстро исчезнут в последующем потоке чата, поэтому даже ретроспективное перемещение их в тему может быть очень ценным.
JammyDodger
Я думаю, что изначально я искал что-то, что мы могли бы предоставить в качестве примера темы/чата здесь, на Meta, чтобы продемонстрировать новичкам в Discourse Chat, как он может гармонично сочетаться с устоявшимися представлениями о «длинных абзацах» в Discourse.
Так что даже что-то, что мы создали специально, чтобы аккуратно продемонстрировать этот принцип.
Я думаю, что всё, что поможет людям легко представить, где в структуре их форума может вписаться чат, будет полезно. Я открыт ко всем идеям
Я ищу способы запечатлеть суть нового потока чата как демонстрацию того, как чат может стать семенами для более широкого обсуждения.
Хотя звучит так, будто у вас есть много примеров, которые станут отличной темой для обсуждения
Есть ли у кого-нибудь идеи, как мы можем это сделать, исходя из того, где мы сейчас находимся с тестированием чата здесь, на Meta?
RGJ
Честно говоря, я не вижу, как чат может быть предшественником глубокого обсуждения
agungor
Мне кажется, что этот разговор сам по себе становится таким примером.
Jonathan_Poyer
Чувствуется, что то, что на других платформах превратилось бы в ветку, здесь должно либо превратиться в другой чат, либо стать отдельной темой. Но в то же время тема кажется больше похожей на долгосрочное обсуждение, а не на разовое, как здесь?
JammyDodger
Пункты обратной связи отличные, и я думаю, что вскоре они будут выделены в отдельные темы, но я надеялся на что-то, что могло бы служить отличным примером для всех, кто только присоединяется к @chat-testers. Что-то, на что люди могут просто посмотреть и сказать: «Ах, да. Сначала я не был уверен, но теперь вижу, как чат может быть предшественником глубокого обсуждения».
Это может дать видимость людям, которые не в чате, особенно если тема начинается с вопроса.
JammyDodger
Я думаю, по крайней мере. Я перепроверю свои мысли перед тем, как что-то делать.
Возможно, я прошу слишком многого
jimkleiber
Но, иронично, я отвечаю здесь lol.
RGJ
Но это может быть потому, что я старый.
JammyDodger
Я как раз обдумывал это. Я пытался понять, могу ли я создать тему, где чат каждого человека будет каким-то образом ответом, так как не было подходящих каналов чата, куда их можно было бы перенести. Но теперь, когда вы это сделали, я вижу, что у этого может быть свой собственный канал чата, и мы можем перенести туда этот разговор
jimkleiber
Ах да, почти как создание темы, которая создаст новый канал чата.
JammyDodger
Так что мы ищем пример, который поможет переубедить и @RGJ
jimkleiber
А затем тему можно наполнить только цитатами из чата, выделяя главное.
Moin
Мне нравится пример здесь. Но этот пример не подходит сюда. Возможно, тема могла бы быть о функции, которой вам сейчас не хватает. О чём-то, из-за чего вы не стали бы создавать тему, например, потому что у вас нет времени проверить, есть ли похожий запрос на функцию, или вы думаете, что никто другой не заинтересуется этим.
JammyDodger
@Moin, ваши навыки поиска всегда являются благословением
Я искал что-то о семенах и деревьях, но не мог найти это здесь.
Но, да. Какой-то расслабленный/дружелюбный/неформальный чат, в котором идея формируется в ходе лёгкого диалога, а затем вдохновляет на создание полноценной темы для обсуждения.
Интересно, когда лучше перемещать сообщения, а когда — цитировать. Возможно, это зависит от того, есть ли уже соответствующая тема? Не уверен. В каких сценариях лучше склонять людей к одному из следующих вариантов?
Цитировать сообщения чата в существующей теме
Переместить сообщения чата в существующую тему
Цитировать сообщения чата в новой теме
Переместить сообщения чата в новую тему
Поскольку цепочки сообщений чата, э-э, более «разговорные», чем темы, у меня есть ощущение, что в целом мы, возможно, должны поощрять цитирование больше, чем перемещение.
Есть ли случаи, которые вы наблюдали или имеете в виду, когда вы думаете: «нет, цитирование здесь не подойдёт. Определённо нужно их переместить»?
Спасибо за это — всё получилось совсем перемешано! Мне придётся провести локальное тестирование на больших наборах сообщений. Думаю, как минимум потребуется следующее:
Однако я в целом настороженно отношусь к сортировке по ID из-за странных несоответствий. Мне кажется, что для каналов в целом лучше сортировать сообщения по created_at. @j.jaffeux или @mcwumbly, что вы думаете по этому поводу? Если мы решим поступить так, то перемещатель сообщений, возможно, потребуется искусственно раздвигать значения created_at на 10 мс каждое, чтобы обеспечить стабильный порядок.
Я считаю, что в целом, если они совершенно не относятся к текущему каналу, лучше переместить их в более подходящий канал. Мы многократно использовали это ранее внутри компании, когда работали с Mattermost. Например, группа сообщений об инцидентах в канале general, которые следует переместить в канал incident для лучшего ведения записей. Или же пустые разговоры в канале, которые лучше переместить в random.
Я не вижу никакой пользы в цитировании и оставлении старого хлама в таких случаях, и, как отмечает Moin, это может запутать, когда обсуждение продолжается в двух разных местах.
Имейте в виду, что эти два варианта в настоящее время отсутствуют. Мы убрали «Переместить в тему», потому что в первоначальной реализации это создавало один пост на каждое сообщение чата, а также не удаляло исходные сообщения в канале. Если в будущем мы захотим реализовать это снова, это должно:
a) цитировать группы сообщений вместе (например, по 100 на пост) с использованием функции цитирования чата и
b) удалять оригиналы в канале, чтобы избежать дублирования.
Я воздержусь от комментариев по поводу реализации сортировки постов и предоставлю @j.jaffeux прокомментировать этот аспект.
Ах, да. Я спрашивал не о перемещении сообщений чата внутри чата, но понимаю, как это может быть полезно, и это не создаёт проблемы попытки конвертировать короткие сообщения в длинные (или наоборот) «внутри поста».
Логично. Мне нравится общий формат цитирования в виде «транскрипта», как здесь, потому что, думаю, в любом случае он будет читаться именно так. В прошлом, когда я использовал функцию транскрипции Slack, я часто оборачивал её в [details], а также резюмировал информацию в основном теле поста.
Ещё одна мысль в том же духе — реализовать более продвинутую функцию «расширить контекст», чтобы можно было процитировать одно сообщение, но затем по запросу загружать дополнительные сообщения непосредственно в тексте, чтобы просмотреть больше контекста из чата, не покидая тему.
Я сомневаюсь, что эта часть необходима или полезна при ссылках на обсуждения через границу между «медленной» и «быстрой» полосами.
Это происходит только в том случае, если вы выбираете опцию «Переместить в тему». Зачем тогда оставлять сообщения в канале, если ваша цель — переместить их? Мы уже обсуждали это internally. Конечно, обычное цитирование сообщений в теме ничего не удаляет.
Небольшой факт для вас: класс, который генерирует цитаты, на самом деле называется ChatTranscriptService
Это интересно. У нас уже есть что-то похожее для цитирования тем (вы, вероятно, уже видели это). Было бы полезно получить немного больше контекста, не посещая сам канал.
Я бы сказал, что случай использования для перемещения следующий:
У нас есть канал, посвящённый обсуждению «китов».
Группа людей начинает активное обсуждение «пингвинов», потому что забыли нажать «#пингвин», и разговор зашёл слишком далеко.
Модератор вмешивается и перемещает обсуждение про пингвинов на канал для пингвинов.
Думаю, фундаментальная проблема здесь — это изменение последовательности.
Я бы сказал, что «подделка created_at» — это единственное разумное решение, так как вы хотите переместить всё одним блоком? К тому же технически сообщение создаётся в момент его перемещения.
Да, я думаю, что меня интересует, действительно ли это необходимо, или же стоит сосредоточиться на том, чтобы функция цитирования/транскрибации работала идеально.
Да, я бы на 100% поступил так, если бы наш обычный маршрут GET для получения сообщений канала был отсортирован по created_at. Именно это я хочу исправить. Просто хотел узнать, есть ли у Жоффри какая-то историческая информация по этому поводу. Если нет, то изменю оба момента сразу.
Да, я на 100% согласен с Сэмом и вами Перенос всего сразу и присвоение ему метки времени created_at на момент переноса — это единственный разумный подход, на мой взгляд. В противном случае это откроет огромный ящик Пандоры… как я узнаю, где его найти? Получение непрочитанных уведомлений о вещах, созданных до моего последнего прочтения? Нет, нет и ещё раз нет.
Отлично, я доработаю инструмент перемещения, чтобы перемещённые сообщения отображались в будущем с небольшим шагом, и изменю порядок сортировки сообщений в чате в общем контроллере по created_at вместо ID