辽宁省城乡和建设厅网站,新农村网站建设,wordpress美化登录界面,阿克苏建设局网站NebulaGraph 社区如何构建工具让 Slack、WeChat 中宝贵的群聊讨论同步到公共领域。
要开放#xff0c;不要封闭
在开源社区中#xff0c;开放的一个重要意义是社区内的沟通、讨论应该是透明、包容并且方便所有成员访问的。这意味着社区中的任何人都应该能够参与讨论和决策过…
NebulaGraph 社区如何构建工具让 Slack、WeChat 中宝贵的群聊讨论同步到公共领域。
要开放不要封闭
在开源社区中开放的一个重要意义是社区内的沟通、讨论应该是透明、包容并且方便所有成员访问的。这意味着社区中的任何人都应该能够参与讨论和决策过程并且所有相关信息应该公开和自由地与他人共享。
在公共场合进行沟通在开源理念中是重要的正是这种方式使得社区的成员可以进行有效地共同工作分享想法和反馈为项目或社区做出贡献。
但是社区在实践开放性沟通的过程中或多或少都会遇到以下一些情况
工具选择本该是用来降低沟通成本的工具却阻碍了部分社区成员在开源社区中的开放沟通。例如 邮件列表交流模式是我个人很偏爱的方式但在中文社区背景下因为邮件列表不是所有用户都能够 access其作为中文社区单一沟通渠道可能会带来沟通的不对等性一定程度只有部分的人有特权表达自己反而伤害中文开源社区的开放性。选择交流工具的时候选择了付费产品社区成员需要为此买单而并非所有社区成员都能负担得起这也导致了部分社区成员不能参与到社区中。所用工具难用或者需要一定的技术经验积累而这经验并非所有社区成员都具备。用于交流的工具在某些操作系统或设备上不兼容这可能使一些社区成员难以访问它们更别提使用它们。 信息共享在不与社区其他成员分享上下文、过程或结果的情况下只在线下例如通过当面沟通、IM 或电话会议进行决策可能会使重要信息只被少数社区成员掌握。这可能会阻止其他人基于这些信息做贡献或是从中学习知识阻碍了开源社区所必需的开放沟通和协作。资料公开没有把系统、功能设计和提案信息以公开方式文档化、归档下来例如只提供某一个公司内网的链接从而可能伤害开源社区的透明度和包容性。这样的封闭结果会使得社区的其他成员很难保持对社区进展的了解、就更不用说参与进来做贡献了。为了促进透明度和包容性开源社区应尽量确保所有重要的信息公开和自由地共享、尽可能保有细节地被公开归档。
开放性挑战
为了使社区或工作环境的沟通保持透明、高效和健康其实已经存在一些共识和通用的做法
异步优于同步在分布式和全球协作的情况下同步通信在大多数情况下成本高且效率低。因此推荐使用 GitHub Discussion 和 Stack Overflow 进行提问式的沟通。专题Thread讨论优于广播Fan out)注意力是宝贵的习惯性向所有人群发送信息会最终导致重要信息没有人真的读到信息都知道狼来了的故事。因此在 GitHub Discussion 和 Slack 中设有分类、频道。建立 SIG 来讨论一些有趣的主题并归档沟通的结果而不是将所有事情带到社区会议广泛讨论。优先选择可搜索/文本、版本控制、协作的方式与工具并在可能的情况下鼓励成员们给其他人反馈在基础设施上跟踪文档、设计流程并且提供评论、review 的能力。为此实践过程中采用 etherpad.opendev.org 来记录社区会议文档。
但是还是存在一些特例的情况我们不能盲目追求异步、绝对的开放。正如前面提到的能让更多参与者公平、方便与社区连结本身也是开放的一部分尽管使用的基础设施可能是封闭的。事实上几乎所有的开源社区都在用类似的方式建立他们的社区沟通平台
Slack 支持丰富的格式化信息支持 Markdown和 Thread 系统其现代化的设计和开放/软定义接口使我们的工作流程可以非常优美流畅。与 Slack 相比因为微信不是专为开放的技术交流场景设计所以微信在技术社区中在许多方面都很不理想。但在国内它是社区中所有人都可以访问的唯一平台。几乎每个人都有一个微信账号几乎每天都会查看微信信息。但与之相反的是几乎上每个人都有不止一个邮箱且只有很少一部分人会每天查邮件。
在 NebulaGraph 社区中上面这两个平台承担了主要的沟通工作但这些信息在出现后的几个月后就会消失它们在短时间内只能被割裂的一部分社区成员看到而未来没有人或其他平台可以读到、搜到和参考、引用这些有价值的讨论。
摸索的方案
曾经有一段时间NebulaGraph 会自己手动收集 Slack、微信群里的讨论摘要定期分享、归档在公共领域这个方法也确实带来了一些价值。然而我们最后都没坚持下去原因很简单
这太费事儿了完全不 scale这种摘要其实不好平衡能被归档信息的裁剪程度有时候细节非常重要却不容易被摘要保留。
搞定 Slack 的信息孤岛
2022 年 10 月我注意到了 linen.dev 这个开源项目同时它也是一个 SaaS 服务。有了它我们可以把 Discord 和 Slack 中的每个 thread 保留。linen.dev 整站看起来和 Discord / Slack 几乎一样但是它完全是可以被匿名访问、引用以及被搜索引擎收录供他人检索使用。
经过几个月的评估我们最终决定了订阅 linen.dev 服务并收获的果实
不用去改造现有 Slack保留 Slack 所有的好处有了这样 https://community-chat.nebula-graph.io/ 的一个站点收录 Slack 信息。其中Slack 中的每个公共频道内容都能被匿名访问、被搜索引擎收录而访客还可以很容易地知道怎么加入我们的 Slack如图右上角 这个站会实时同步 Slack 里的消息重要的是它是面向搜索引擎优化过的你可以搜搜 Kotlin 社区通过 Linen 被收录的网页有多少搜这个“site: slack-chats.kotlinlang.org”。
此外每一个 Slack thread 都有一个无需登录的只读 URL我们可以方便去分享、引用它。虽然这件事儿本身就是超链接、URL 的作用。但是在现在已经变得非常不容易了比如这个新闻里提到现在新一代的年轻人更倾向于在抖音里搜索而不是在公共领域里。
有了 Linen我们可以非常开心地在 GitHub 里引用任意一个 Slack 讨论话题 解决了 Slack 的问题之后唯一剩下的痛点就是微信群了。微信群每周都有许多宝贵的讨论在社群中进行却不能被保留下来真是太令人心疼了。终于有一天我决定直面这个问题。
解决微信群的信息公开化
首先能不能直接用 Linen 一把梭同步群消息呢我确实在 Linen 社区和他们的 Kam 讨论直接解决 IM 同步的可能不过到现在他们都没有优先考虑。
但机智如我我想如果直接把微信同步到 SlackLinen 不就能把微信的信息也收录了吗
在 Twitter 上 求助黑客/开源社区 一番调研确定了没有这样的东西存在之后我决定搞一个做成开源项目我花了一点时间实现了最初的版本。 万万没想到当我做到把消息从微信同步到 Slack 之后随之而来的问题是通过 Slack API 发出的消息 Linen 并不会收录。
为此我放弃了 Linen 一把梭的美好愿望转而考虑把消息同步到其他公共领域。而我第一个想到的就是 GitHub Discussions 之中又花了周末的下午加晚上把它做出来了 现在这个机器人程序会把配置好的微信群消息同时同步到 Slack 频道和 GitHub Discussion 中给定的标签下的主题中每一个群一个礼拜是一个主题所有的消息都是主题下的评论。
小结
现在我们保留了所有 Slack / 微信的美好的一面的同时把它们中的讨论消息历史全都归档、索引并公开到这两个域之下了是不是很酷呢来访问下下面的链接感受“私密消息”下消息被公开的快乐吧
https://community-chat.nebula-graph.io/https://github.com/vesoft-inc/nebula-community/discussions/categories/wechat-chat-history
后续工作
这个同步微信的项目是 Apache 2.0 协议开源的并且现在由我和Frost Ming在维护这里还有很多待增强、实现的新功能、新任务欢迎大家来试玩、贡献。
让我们一起把开源社区的沟通做的多一点开放、少一点封闭吧~
项目地址 https://github.com/wey-gu/chatroom-syncer
最新进展
在圣诞节前Linen 的工程师允许了 chatroom-syncer 同步到 Slack 的消息详见
Linen-dev/linen.dev#761wey-gu/chatroom-syncer#42
现在我们可以在 https://community-chat.nebula-graph.io/c/wechat-sync-venus 看到 WeChat 中的群聊的文本备份了当然啦如果你更喜欢 GitHub Discussion 的方式help yourself选你选的方式就好。
结论
有效的沟通是成功的开源社区的基石因为它让协作、分享思想与知识、以及所有成员的参与成为可能。为了确保沟通透明、包容和有效对于开源社区来说让所有成员有机会参与讨论和决策以及公开自由地分享相关信息是非常重要的。
我们 NebulaGraph 社区的建设者/贡献者将继续寻找和黑客方法以开放和良好的方式使人们连接在一起和大家共建更好的开源、技术社区。 谢谢你读完本文 (///▽///)
要来近距离体验一把图数据库吗现在可以用用 NebulaGraph Cloud 来搭建自己的图数据系统哟快来节省大量的部署安装时间来搞定业务吧~ NebulaGraph 阿里云计算巢现 30 天免费使用中点击链接来用用图数据库吧~
想看源码的小伙伴可以前往 GitHub 阅读、使用、(з)-☆ star 它 - GitHub和其他的 NebulaGraph 用户一起交流图数据库技术和应用技能留下「你的名片」一起玩耍呢~