拥有个人云对开源运动意味着什么

还没有读者喜欢这篇文章。
A person holding on to clouds that look like balloons

Opensource.com

Sandstorm.io 是一种从根本上更简便的方式来运行 Web 应用程序的个人实例。它允许您拥有自己的个人服务器,并通过应用商店界面在其上安装应用程序,就像在手机上安装应用程序一样容易。在 Sandstorm, 我们经常谈论隐私、安全和控制云数据的必要性。让我向您透露一个秘密:这些并非 Sandstorm,我们个人云平台(目前正在 Indiegogo 上接受 Indiegogo 资助)的真正原因。它们只是令人愉悦的副作用。

Sandstorm 的真正动机一直都是,并且将来也一直是,让开源和独立开发者能够构建成功的 Web 应用程序。

在当今流行的软件即服务模式中,独立开发根本不可行。人们 仍然这样做,但他们的软件大众无法访问。为了使低预算软件取得成功,为了使开源具有任何意义,用户必须能够运行他们自己的软件实例,而开发者无需承担任何费用。我们在桌面和移动设备上一直都拥有这种能力。当涉及到服务器端应用程序时,托管必须是去中心化的

但如今,个人托管仅适用于那些有时间、金钱和专业知识来维护服务器的人。即使是大多数技术人员也不愿意这样做,因为它很麻烦。Sandstorm 的存在就是为了解决这个问题,使每个人都能轻松访问个人托管。

“唯一的解决方案是确保每个人都拥有一个服务器,他们可以在其中安装任何他们想要的软件。”

开源在桌面和移动设备上都行得通

在我的桌面上,我运行 Debian Linux。我的系统由数千个软件包组成。我有浏览器、文本编辑器、IDE、聊天客户端、办公套件、开发工具、照片编辑器和媒体播放器。值得注意的是,所有这些都是开源的。更值得注意的是,我已经不记得上次我感到需要使用非开源桌面应用程序是什么时候了。

我不是狂热分子。我不会将开源强加于自己,也不会对他人这样做。当专有软件能够完成工作时,我会使用它,而且我过去也曾长期使用 Windows 和 Mac,但如今我在 Linux 系统上最快乐。这是我个人的偏好,并不适合所有人,但考虑到十五年前的情况,我可以选择运行全开源桌面而不会感到痛苦,这真是太棒了。

即使是现在的 Windows 和 Mac 用户也使用大量的开源软件。据某些衡量标准,现在大多数人都在使用开源浏览器。VLC、BitTorrent 和其他“独立”开源桌面应用程序即使在非技术人员中也得到广泛使用。移动设备似乎更加充斥着开源和低预算的独立应用程序,因为各种移动应用商店使得小型开发者可以极其轻松地接触到大量受众。

然而,不知何故,今天的 Web 几乎完全缺乏开源软件。我每天都使用 Gmail、Facebook、Twitter、Feedly 等应用程序。这些都不是开源的。诚然,这些应用程序通常运行在开源基础设施上,但这有所不同。大多数专有桌面应用程序都使用开源组件和工具。但是用户看到的 Web 应用程序几乎总是专有的。

为什么我的所有 Web 应用程序都是专有的?

开源 Web 应用程序是存在的。例如,像 SquirrelMailRoundCube 这样的 Webmail 应用程序已经存在一段时间了。如果您努力寻找,您可以找到开源在线文档编辑器、RSS 阅读器,甚至是一些社交网络。但即使在技术人员中,似乎也很少有人使用这些,可能是因为它们都需要运行您自己的服务器,而很少有人有时间、耐心和专业知识来做到这一点。

也有一些成功案例。WordPress 是开源的,并且被广泛用于博客。但这似乎是例外而不是规则。而且这也有疑问:大多数使用 WordPress 的人实际上无法编辑代码,因为他们是通过 WordPress 托管服务使用它,并且只能使用该主机提供的 WordPress 版本。当然,所有主机可能都只会使用“官方”版本。因此,在实践中,它几乎不是真正的“开源”而是“可见源代码”——您可以查看代码并请求更改,但只有当您的更改被正式采纳后,您才能使用它们。

为什么没有人使用“独立”Web 应用程序?

即使在 Windows 上,人们也经常安装小型开源应用程序来完成任务。需要标记一些 mp3 吗?想要使用一个客户端连接到多个聊天网络吗?需要解压缩奇怪的存档格式吗?您可能会使用开源应用程序。有时很难围绕小众用途建立商业案例,但随机人员在业余时间编写的小型应用程序却很丰富。但是在 Web 上,似乎并非如此。任何具有服务器端组件的重要服务实际上只能由资金充足的公司运行。

让我描述一个具体的例子:我认识一位名叫 Brad Fitzpatrick 的多产程序员。您可能知道他是 LiveJournalCamlistorememcachedOpenID 和其他项目的作者。但我想谈谈他一个您可能没有听说过的项目。

scanningcabinet 是一个小型的 Web 应用程序,可以帮助您整理纸质邮件。您将邮件放入扫描仪,应用程序会扫描并将其上传到“云端”,您可以在以后访问、标记和搜索它。Brad 在几年前的一个周末编写了这个程序,并将代码上传到了 GitHub。

这个应用程序可能对几乎所有人都有用。但可悲的是,没有人真正能使用它。要设置它,您必须配置服务器(在本例中为 App Engine)并将代码部署到它。即使像我这样知道如何操作的人,这也不是我真正想做的事情。

按照今天的模式,如果 Brad 想让大众能够访问这个应用程序,他必须将其作为服务运行。他必须构建多用户支持,确保其安全,部署它并对其进行监控。更糟糕的是,他必须为此付费,这意味着他必须将其货币化,这可能意味着他必须开始分析人们的邮件以构建广告配置文件,或者设置计费。Brad 显然不想做任何这些事情。

即使他做了,谁会使用它呢?您想将您的纸质邮件上传到由互联网上的某个人运行的服务器吗?我当然不会将我的个人数据信任给任何至少没有可识别的组织支持,并且在搞砸时会蒙受损失的服务。

问题在于托管。

至此,问题变得清晰起来:为了使开源软件有意义,用户必须运行他们自己的实例。软件即服务和开源根本不应该放在一起。如果您不能运行修改后的代码,那就不是真正的开源,而且高门槛将业余项目或任何不愿意货币化的项目拒之门外。

唯一的解决方案是确保每个人都拥有一个服务器,他们可以在其中安装任何他们想要的软件。他们不一定需要管理该服务器——它可以由朋友或服务运行——但每个用户必须能够安装任意软件。并且该软件必须安全地沙盒化,以防止有缺陷或恶意软件损害服务器的其余部分。

今天,这在任何实际形式中都不存在。服务器需要时间和技术专业知识来设置,而统包托管服务只允许您运行一组固定的软件。

开源 Web 应用程序没有运行的地方。

我们正在使去中心化托管变得可行

Sandstorm 是一个 Web 应用程序托管平台,使非技术终端用户能够安装和运行任意软件。应用程序可以从应用商店下载,并通过单击安装,就像在手机上安装应用程序一样。每个应用程序服务器都在安全沙箱中运行,在未经许可的情况下,它不会干扰其他应用程序。

我们经常谈论隐私、安全和控制,但在我看来,这些一直是 Sandstorm 模式令人愉悦的副作用。我启动这个项目的主要动机一直都是为了支持开源软件、业余项目、小众应用程序和独立开发者。即使与 Gmail 或 Facebook 相比,这类别的每个单独应用程序最终的影响都很小,但不给这些应用程序提供平台所造成的集体价值损失是巨大的。我们需要开源软件来填补大公司不感兴趣的利基市场,并推动他们认为风险太大的边界。我们需要可以未经许可进行调整的软件,以便在不从头开始的情况下尝试新事物。坦率地说,在我看来,我们今天在 Web 上实际上没有这个是很荒谬的。

帮助我们实现目标

我们已经走了很长一段路。我们有一个演示,它已经完成了我们正在谈论的大部分内容。但我们正接近我们自筹资金能力的极限。我们可以将 Sandstorm 投入生产,但我们需要您的帮助。

请查看我们在 Indiegogo 上的活动,并广而告之。

最初发布在 Sandstorm 新闻博客上。经许可转载。

标签
User profile image.
Kenton Varda | 我编写开源软件。我曾在 Google 工作了 7.5 年,在此期间我从事基础设施和安全方面的工作,但最出名的是开源了 Protocol Buffers,Google 的内部数据交换协议。

5 条评论

我试用了演示,它真是太棒了。Sandstorm 似乎是解决一个紧迫问题(正如您在此处令人信服地指出的那样)的优雅解决方案。祝您在 आगे推进 इस पर काम करने के लिए शुभकामनाएं。

这确实非常棒!在不到一分钟的时间内,我在演示实例上安装了 mailpile 应用程序并成功发送了邮件

回复 ,作者是 bbehrens

您好,

我只是快速浏览了一下您的 shell 和 ghost 演示。似乎可以工作,这是一个好的开始。

一些技术要点

* 您的演示登录页面在没有 Cookie 的情况下无限循环,并且登录页面需要 Javascript,但没有明确的原因。
* 看起来您与谷歌的 ajax 代码绑定在一起,因此如果他们撤回该代码,是的,您的网站就会崩溃。

从更社会的角度来看,我不确定您的解决方案是否真的解决了您声称要解决的任何问题。拥有用户可以使用的服务器并不能克服 gmail 和其他服务利用的网络效应。它也没有解决首先必须提供域名的问题(这对任何人来说都足够麻烦了)。我没有看到从您陈述的问题到您开发的解决方案的明确路径。

恕我直言,一个好的分布式网络库,带有托管备份(类似于 torrent 中的 tracker)将是解决您描述的问题的更清晰的解决方案(每个人都喜欢手机/电脑/任何设备上的原生代码的感觉)。更好的可扩展性,并且无需调用域名。

另一方面,这似乎是对在线托管的认真尝试。如果您能澄清您为什么要这样做,那就太好了!

> 您的演示登录页面在没有 Cookie 的情况下无限循环,

抱歉,我认为这一定是 CloudFlare 的问题,因为我实际上自己不使用 Cookie,但我知道 CloudFlare 引入了一个 Cookie。但我认为在这种情况下,所有启用 CloudFlare 的网站都会受到影响,这在互联网上占据了相当大的比例。您发现很多网站都有这个问题吗?

或者您是否也禁用了 localStorage 以及 Cookie?Sandstorm 实际上确实使用了它。

> 并且登录页面需要 Javascript,但没有明确的原因。

登录站点是 Meteor 应用程序的一部分。Meteor 应用程序几乎完全是 Javascript。该设计使得可以在应用程序的页面之间浏览,而无需等待缓慢的页面重新加载;避免使用 Javascript 的应用程序现在感觉非常缓慢和过时。

> 看起来您与谷歌的 ajax 代码绑定在一起,因此如果他们撤回该代码,是的,您的网站就会崩溃。

嗯?据我所知,Sandstorm 不依赖任何外部资源。

Sandstorm 网站(不是 Sandstorm 本身)使用分析和社交按钮,但它们都是可选的;即使它们失败,它仍然可以工作。

> 拥有用户可以使用的服务器并不能克服网络效应

并非所有应用程序都具有网络效应。例如,文档编辑器没有太多网络效应。我认为电子邮件应用程序也没有太多网络效应,因为电子邮件是一个开放标准。显然,对于联合社交网络来说,网络效应仍然是一个问题,但至少通过消除一个单独的主要问题(托管),我们正在变得更接近。

> 恕我直言,一个好的分布式网络库...

不。原生客户端很棒(Sandstorm 将支持它们),但对于任何社交或协作的东西,您仍然需要服务器。例如,为了拥有一个真正的实时协作文档编辑器,您需要一个服务器来托管规范副本并调解编辑。

此外,您描述的需要重写我们所有的应用程序。能够使用现有应用程序来启动 Sandstorm 对于引导启动非常重要。

回复 ,作者是 amoose (未验证)

这绝对是一个有趣的项目。很高兴看到一个一键安装程序,其中包含 1) 仅 FLOSS,以及 2) 我实际会使用的应用程序。

祝您的 Indiegogo 活动顺利!

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.