十多年来,埃文·普罗德罗莫(Evan Prodromou)一直致力于构建开源工具,以帮助人们在线分享事物。2003 年,他与人共同创立了 Wikitravel,这是一个让世界旅行者协作编写终极旅行指南的网站。然后,在 2008 年,普罗德罗莫推出了 StatusNet,一个 去中心化、联邦式 网络工具,其公开形象 identi.ca 成为了许多自由软件倡导者和开源爱好者的首选微博服务。
但是,当他谈到他的最新项目 pump.io——一个 更精简、更简单、更高效的 社交网络服务器,具有简单的 API——普罗德罗莫非常小心地将在线社交网络的政治和技术细节放在幕后。他说,构建开源社交网络不仅仅是为了避免隐私侵犯、审查或垄断。
软件公司 E14N 的创始人兼 pump.io 的首席开发人员 普罗德罗莫 说:“社交互联网的妙处在于它真的很有趣。”
他希望其他人也有同样的热情。去年 12 月,普罗德罗莫宣布 StatusNet 关闭(该项目的代码此后已成为 GNU Social 项目 的一部分),并将自己投入到构建 pump.io(以及 教导他人 如何对其进行黑客攻击)中。7 月 11 日,普罗德罗莫完成了将 identi.ca——及其热情的用户群——从 StatusNet 迁移到 pump.io 的工作。Identi.ca 现在只是普罗德罗莫希望成为 一个不断增长的 pump.io 站点网络 中的另一个节点。
请阅读与首席开发人员埃文·普罗德罗莫的这次访谈,了解更多信息。
请向我们解释 pump.io 项目。
pump.io 是一个活动流服务器,它可以完成人们真正希望社交网络服务器完成的大部分工作。
我知道这句话信息量很大,但我可以尝试稍微解释一下。
“活动”是我们在在线或离线生活中所做的事情——早上醒来、去跑步、品尝啤酒、上传照片、添加朋友、吃墨西哥卷饼、加入群组、喜欢一篇博文。
pump.io 使用简单的 JSON 格式来表示所有这些类型的活动以及更多。它将活动组织成 流——按时间顺序排列的活动列表,最新的在前。大多数流都按主题组织,例如:我的朋友们所做的所有事情,或者我所做的所有事情,或者任何人对这张照片所做的所有事情。
程序员使用简单的 API 连接到 pump.io 服务器并添加新活动。pump.io 自动将活动组织成流,并确保活动到达对它们感兴趣的人。
而且,这真的是我们想要从社交网络获得的东西——了解我们的朋友、家人和同事在做什么。pump.io 默认以简单、自然的方式为社交网络进行路由,如果程序员需要,他们可以微调该路由。
您对 pump.io 的目标是什么?您设计它来解决哪些问题?
我想用 pump.io 解决三个大需求。
- 移动优先的社交网络。 我与许多开发人员反复交谈过,他们正在为他们的移动社交网络应用寻找可扩展的开源服务器。擅长 iOS 或 Android 开发的开发人员希望专注于使前端变得出色——而不是构建另一个“赞”API。尽管还有其他开源社交网络程序,例如 StatusNet,但它们大多数都专注于 Web 界面,而将 API 视为事后才考虑的。pump.io 首先是一个 API 服务器。如果您想打开它,它有一个默认的 Web UI,但您可以关闭它,只使用 API 服务器本身。
- 非社交软件的活动流。 活动流出现在许多软件中,但很多时候它不是旨在社交的软件。用于制作书籍、渲染 3D 模型或错误跟踪的软件都有各种各样的活动,但开发人员很难很好地实现这些活动流,而且这有点分散注意力。pump.io 让这些开发人员几乎可以免费将活动流放入他们的软件中。
- 社交互联网。 我对联邦式社交网络感到兴奋,所以我制作的任何社交软件都将具有连接到其他社交软件的能力。如果 pump.io 服务器认为有流需要它,它可以将活动推送到另一个服务器。这使得 pump 形成了一个连接用户的网格。您可以设置一个私有互联网——例如,在可互操作的应用程序之间——或加入日益增长的公共 pump 网络。
pump.io 与您之前的项目 StatusNet 有何不同?
pump.io 在几个方面与 StatusNet 不同,但我认为主要区别在于它少做了很多。StatusNet 服务器软件附带两个不同的 API、大约 150 种页面和 117 个插件。我们有一个桌面客户端、一个 Android 客户端和一个 iOS 客户端。您可以通过五种不同的方式登录服务器。
这种臃肿有一些缺点。首先,它远远超过任何一个开发人员构建自己的站点或项目所需的功能。因此,他们最终要么启用了用户不需要的许多功能,要么通过管理界面拨动开关来关闭某些功能。其次,真的很容易忽略其价值——开发人员看到它会想,“这是一个微博服务器;我正在开发视频分享。这不适合我。”第三,它真的吸走了第三方开发人员的空气。它没有留下太多可以做的事情。
pump.io 从一开始就被设计为精简、高效的开发人员工具。开发人员可以为他们自己的项目设置一个 pump,或者他们可以为公共 pump 网络构建应用程序。这并不容易——这意味着做出保持服务器紧凑、可扩展和高性能的决策——但我认为最终会获得回报。
- “我真的希望 pump.io 成为开发必不可少的基础设施之一。我们有像 memcached 或 RabbitMQ 这样出色的、坚如磐石的服务器,它们实现了某些类型的数据路由。我认为 pump.io 可以成为该工具集的一部分。”
尽管 StatusNet 的代码仍然可用,但您实际上已经停止了对它的支持。您希望通过 pump.io 做哪些不同的事情?
这实际上不是真的。StatusNet 中有很多经过实战考验的代码,由一些 Web 开发领域最聪明的人编写,并且它正在运行许多公共和私有站点。它有一个充满激情的社区围绕着它。即使我想停止对该软件的支持,我也做不到。
相反,我们将 StatusNet 的代码贡献给自由软件基金会,它将构成 GNU Social 项目 的核心。GNU Social 周围有一个非常热情的开发人员社区,我认为有强烈的动机让这两个程序互联互通,就像两个 pump.io 服务器可以互联互通一样。
至于我希望做哪些不同的事情:我真的希望 pump.io 成为开发必不可少的基础设施之一。我们有像 memcached 或 RabbitMQ 这样出色的、坚如磐石的服务器,它们实现了某些类型的数据路由。我认为 pump.io 可以成为该工具集的一部分。
StatusNet 的哪些经验教训指导了您构建和实施 pump.io?
可能最大的教训是互联网社区在支持 E14N 所做的工作方面是多么令人惊叹。我一直都是那种想自己做所有事情的人,而参与大型自由和开源软件项目让我意识到,你真的可以“信任背摔”回社区的怀抱。他们会一直在那里。
这就是 pump.io 试图将创新推向边缘的原因之一。如果你相信人们会挺身而出,他们就会做到。我真的很想看看人们为 pump 网络构建的酷炫移动和 Web UI、应用程序、游戏、搜索引擎和数据挖掘工具。自从最初的几个版本发布以来的几个月里,我们已经有了一些很酷的桌面和移动客户端被开发出来。而且我认为还有更多正在路上。
我学到的另一件事是,你真的必须“吃自己的狗粮”,即亲自使用自己的技术。自 2008 年以来,E14N 一直在运行像 identi.ca 这样的大型公共社交网络,它们是我生活中非常重要的一部分。运行 pump 网络意味着我正在使用该软件与朋友和家人联系——并且我正在承担我的开发决策的后果。
- “我一直都是那种想自己做所有事情的人,而参与大型自由和开源软件项目让我意识到,你真的可以‘信任背摔’回社区的怀抱。他们会一直在那里。”
为什么去中心化社交网络如此重要?
哎呀!这是一个非常危险的话题。存在一种真正的危险,即专注于集中式社交网络的问题——隐私侵犯!扼杀创新!政府监控!不公平的竞争环境!——只是让人们在开始思考替代方案之前就感到非常沮丧。
这就像在某人面前打开一盒蜘蛛和蛇,然后大喊BOOGETY BOOGETY BOOGETY。人们只想尽快远离你;他们不会停下来听你在卖什么,无论它有多好。
所以我尽量完全跳过那部分。社交互联网的妙处在于它真的很有趣。为你和你的家人建立一个网络,并将该网络连接到你社区中的其他家庭,这很有趣。在你的 Raspberry Pi 上设置一个 pump.io 服务器令人兴奋。如果你是一名软件开发人员,摆脱你和你的用户之间的官僚主义,制作对他们重要的软件,这太棒了。如果你是一名设计师,建立你自己的网站来展示你的风格,而不是千篇一律的个人资料页面,这很棒。
当我告诉别人你可以建立自己的社交网络时,有些人会感到困惑。“谁会想建立自己的社交网络?”我说,“你熏制自己的火腿。你为火人节建造了一个 14 英尺高的三轮车。为什么不建立你自己的社交网络呢?”
当有人用 pump.io 做出很酷的东西时,我会感到非常兴奋。这一定是乐高公司的人每天的感受。而这真的是 pump.io 的本质。我们制作了这个软件,但我们的用户将其组合在一起以构建网络。
如果这不能让你感兴趣,那也没关系。pump 本身就是一个非常棒的工具,可以独立使用。如果你想将一些 pump 连接在一起,那么管道已经准备就绪,可以做到这一点。
4 条评论