你是否曾后悔开源某个项目?

开源代码通常被视为一种成功–对学习、知名度和社区都是如此。但你后悔过吗?

也许它成为了维护的负担,吸引了错误的用户,或者以你意想不到的方式被使用。

很想听听您的经验–好的或坏的。

共有 428 条评论

  1. 我是一个模拟键盘和鼠标输入的库的维护者。我并没有启动这个项目,但接手了维护工作,并重写了几乎所有代码。最近我发现 Anthropic 正在 Claude Desktop 中为某个未发布的功能提供它,这个功能可能类似于 “计算机使用”。我注意到他们负责实施的团队有一个空缺职位,于是就申请了。几个月后,我收到了一封拒绝信。信中说,团队没有时间审查更多的候选人。代码是在 MIT 下编写的,所以一切都很正常。Anthropic 这样的公司使用我的代码是件好事,但如果能从中受益就更好了。关于这个话题,我在这里写了一篇稍长的博文:

    https://grell.dev/blog/ai_rejection

    • 你是通过网站/招聘启事申请的吗?

      我强烈建议你再试一次,并联系通知你这个职位的朋友的朋友,要求他更直接地介绍招聘经理给你。不幸的是,简历真的很容易被漏掉,拒绝一份 pdf 文件也不会让人感到后悔。即使没有热情的接触,通过某种方式直接联系到招聘经理(注意:不是招聘人员!)也意味着 “那家图书馆是我写的!@”将成为最重要的信息,而不是被埋没在一行一行的项目中。与求职门户网站相比,我自己和我认识的人在冷启动或热启动中取得的成功要多得多。事实上,我在网上申请的任何一份工作都没有得到回电!

      另外,有人知道为什么人工智能实验室的招聘人员这么差吗?我成功地在一家实验室找到了一份工作,目前正在那里工作,但我仍然对招聘过程有很多很多不满。

      • 人类学有一个艰难的对齐面试。比如我通过了编码筛选,但在聊了价值观之后就被拒绝了。我认为他们想要的是在价值观/安全方面以及技能方面都很强的人。

        • 也许我理解错了,但读到这条评论时,我不禁打了个寒颤。

        • 在安全方面 “紧张 ”是什么意思?人工智能安全的高风险还是低风险?

          • 你需要疯狂地致力于燃烧热带雨林和沸腾海洋,这样人们就可以让人工智能写邮件,而其他人会用人工智能来总结,甚至从来不看总结。

            • 你把人工智能和区块链混为一谈了,伙计。人工智能有其他比能源使用更深层次的问题,但还是很好的美德信号。

              • 人工智能使用大量能源,但与 PoW 不同,浪费电力不是它的目的。

              • 区块链与微软计算中心的能源使用有什么关系?

                你是想通过与现在 “不酷 ”的区块链技术进行一些不着边际的比较,来淡化在这些大型语言模型上训练和运行推理所需的计算量吗?那就太荒谬了。

          • 可能与使命一致。兄妹俩写了很多关于这方面的文章,所以都要读一读。我做了预习,但没做对。我怀疑是因为我做的工作太普通了,所以我没有能让他们觉得 “这人真厉害 ”的例子。

        • 多元化(至少在思想上)招聘就到此为止了吧。

        • 什么是价值安全方面的高强度人员?

          • 阅读公司网站并具备沟通技巧,能够令人信服地转述公司对各种问题的立场的人。拜托,这又不是什么联邦调查局的测谎测试,他们会问你的问题和人们在顶级公司、医学院等的每次面试中的问题一模一样。

          • 这是对 “唯唯诺诺的人 ”的形象比喻

        • 提醒一下,那是一家为美国军方研发人工智能的公司。

      • 是的,我是通过网站申请的。不幸的是,我不认识足够好的人来做这件事

      • 别天真了,这些公司不在乎人才,他们在乎的是声望和资历。<username>@_standford_永远比 “做过与项目相关的实际工作 ”更有说服力。

        只要看看这些地方一些名字的背景就知道了。一如既往的是 “你认识谁,你去过哪里”,而不是 “你知道什么,你做过什么”。

        编辑:如果你愿意,你可以降低投票,但这并不能改变一个事实,那就是高风险技术从来都不是任人唯贤的,人工智能公司也不例外。

        • 虽然每个组织最终都会存在偏见和低效率,但如果这些公司优先考虑虚假的指标,它们就不会有竞争力。

          • 我的意思是,现在有三家真正的顶级人工智能公司,他们现在唯一的竞争优势就是前沿模型的质量。也可以说,在这个极其 “热闹 ”的市场上,它们的融资能力….。

            • 争夺人工智能人才的公司绝对不止 3 家,这一点你很清楚。

              英伟达(Nvidia)、苹果(Apple)、谷歌(Google)、OpenAI、Anthropic、xAI、特斯拉(Tesla)、微软(Microsoft)、Mistral 以及数十家资金雄厚的人工智能初创公司都是拥有更多资源的公司。

              • 苹果特斯拉和微软可以说真的不算。微软是卖铲子的。特斯拉就是特斯拉。据我所知,苹果并没有在前沿车型上展开竞争。

                • 苹果公司有 400 个人工智能科学家的空缺职位,估计有 4000 多人从事核心人工智能工具(Apple Intelligence 等)的研发工作。

                  微软本身也在开发人工智能硬件和模型(如 Phi)。

          • 钱正从天而降,落在任何一家写着人工智能的公司身上。是的,他们会的。

          • 它们有竞争力吗?到目前为止,它们似乎都在为可持续盈利而挣扎。

            在淘金热中筹集资金是简单的模式。在市场调整中生存下来才是最难的。

      • >话说回来,有谁知道为什么人工智能实验室的招聘人员这么差劲吗?

        他们用自己的泔水生成器来处理招聘工作。

    • 我宁愿假设你的申请没有被团队中的任何人收到,而是被下面的某个破程序过滤掉了。

    • 需要 GNU GPLJ 许可。只有为版权持有者提供一份工作,才能将其用于商业目的。

      • 现在的情况是,如果代码使用的是 GPL 许可证,那么没有什么能阻止他们付钱给作者,让他使用另一种许可证。

        当然,他们可以提供一份工作作为获得许可证的报酬,或者直接付现金。

        对于 GPL 代码来说,这种方法是 “必要的”(对于 “必要 ”的某种定义),但对于 MIT 代码来说却不是必要的。

        这假定只有一个(或几乎只有一个)版权所有者。如果有多个贡献者,而且没有 CUA,这种方法一般是不可能的。

        就我个人而言,对于 GPL 代码,我会让贡献者签署一份 CUA。这将为类似的商业机会敞开大门,尤其是当代码 “主要是你的 ”时。

      • 我几乎相信这是真的,但我没有看到任何迹象表明这是真的。这主意不错

        • 它不可能是 GNU 许可证,因为它违反了 FSF 概述的自由 0:https://www.gnu.org/philosophy/free-sw.html

          • 我想,经过良性修改后,它确实可行:它只是获得了 (a)gpl 和商业许可证的双重许可,后者在获得工作时可用。前者始终可用,但当然他们必须发布整个堆栈的源代码,而 Anthropic 几乎肯定不想这么做。但这不是 OP 的错,而且该许可证是纯粹的 (a)gpl。

        • 在实践中很难做到这一点。

          提供工作是什么意思?他们能提供一份年薪一美元的工作就完事了吗?或者你能强迫他们给你提供一份年薪十亿美元的工作吗?

          他们能给你一份工作,但只能在南极洲吗?签证担保怎么办?

          当然,你可以在许可证中写入任何你想写的不靠谱的条款。但如果你的许可证写得很糟糕,任何正派的公司律师都会强烈建议远离你的代码。如果这就是你想要的结果:你还不如用 “仅限非商业使用 ”的许可证来开放源代码。

          • 更糟糕的事情都试过了。

            其实听起来也没那么糟(设计工作要求!)。

            • > That actually doesn't sound so bad. (Designing the job requirements!)

              嗯,这就好比有一个许可证,允许作者在对方决定购买之后再决定产品的价格。只是不会有买家而已。

        • 哈。现在就可以了……只要复制粘贴 GPL 的文本并附加这一个条件就可以了。

          • > Hah. 现在就是了……只要复制粘贴 GPL 的文本并附加这一个条件就可以了。

            GPL 第 7 条(第 3 版)明确赋予用户删除附加条件的权利。因此,如果你想让它有效,至少需要从你复制的 GPL 中删除第 7 节。然后,你还需要删除前言和说明,以避免自由软件基金会的愤怒(他们允许你修改许可证测试已经很慷慨了)。

            归根结底,这严重违背了 GPL 的精神(也违背了自由和开放源码软件的一般意义),因此将 GPL 作为这种专有、源码可用许可证的基础是完全不合理的。

          • FSF 拥有 GPL 文本的版权,他们允许任何人自由地重新发布逐字拷贝,但不允许任何人随意创建衍生产品。

          • 2 … 花 100 万美元打官司

            3 … 利润!

      • 现在说这个可能有点晚了,因为该公司可以简单地使用仍在 MIT 许可下的早期版本,并在此基础上进行开发。当然,他们必须对其进行维护,但如果他们真的不愿意雇佣,也可以这样做。尽管如此,转用自由软件许可协议(copyleft libre license)也不失为一个好办法。

    • 有趣的是,Anthropic 花费了大量资源在人工智能中建立道德检查机制。我想知道这个招聘过程是否经过了自己的道德检查。

      • 当你申请时,你必须确认你的申请不是用人工智能生成的。一旦你发送了申请,就会收到一封自动确认申请的电子邮件。他们还说,如果你不符合要求,他们不会主动联系你,他们只联系他们想聘用的人。也许他们改变了这一政策,因为几个月后我收到了一封拒绝信。信写得非常好。我给别人看的人说,这是他们见过的最漂亮的拒信之一。

      • 如果他们使用了某个人的开放源码软件,就没有任何道德原则要求他们雇用这个人。也许他们错过了一个好员工,这就是生活。

        • 这样的道德原则是有的,只是可能不在我们的主流企业或开源软件文化中。

          如果一个团体使用这些原则,那么 “公平分享 ”的生态农业伦理原则在这里也适用。

    • 请记住,他们可能会使用它,或者至少是明确发现了它,因为它是开源的。所以,要么你不发布,他们使用其他东西,要么你发布,他们使用。从长远来看,方案 2 听起来会给你带来更多的曝光率和机会。

      • 人们死于曝光。

      • 当然,它很难盈利,虽然要花费无数的时间来解决它的许多 bug,但它绝对不是火箭科学。我对开源软件的贡献不求回报,因为我使用的所有软件也都是开源的。这是我的回馈方式,我喜欢这种对人们有用的知识,也喜欢听到他们的项目。到目前为止,我还没有从中得到任何好处,但我还是会继续做下去。看到越来越多的人使用它,我很高兴。

      • 目前还没有机会。

      • _> 从长远来看,方案 2 听起来会给你带来更多的曝光率和更多的机会。

        https://theoatmeal.com/comics/exposure

        换句话说,请不要再说这种情绪了。

        • 请不要在 HN 上发表这样的评论。您可能不欠 “曝光 ”任何更好的东西,但如果您想参与这里的活动,您就欠 HN 更好的东西。

          如果您不介意回顾一下 https://news.ycombinator.com/newsguidelines.html,并更加重视网站的精神,我们将不胜感激。

          • 删除

            • 我真的不知道你在说什么,也不知道这有什么关系(我知道你指的是发生在 HN 以外的事件)。

              指导原则明确要求我们要 “友善”,不要 “谩骂”。您的评论已被几位社区成员标记,因此大家都一致认为这不是我们希望在 HN 上看到的。

              • 这……哇。真是令人失望的回复。

                如果说 “善良 ”是 HN 的实际价值观,那么我在这个论坛上活跃了近 15 年,还没有看到过。据我推测,这个社区的人一般都不善良,发火是最常见的事。

                但不管怎样。我不会再打扰你或这里的任何人了。走好。

                • 15 年后,你失望地发现我们希望人们尽量友善,避免谩骂?我不知道您希望这里成为一个什么样的论坛,但在这15年的大部分时间里,我们对这些事情的指导方针是始终如一的,对版主的管理方法也是如此。是的,人们经常违反准则。但这并不妨碍我们提醒大家注意这些准则,并继续努力做到更好。如果您尊重社区并愿意努力遵守准则,我们随时欢迎您的到来。

            • (据我所知,我这辈子从没说过 “死得慢 ”这个词)。我想你把我和别人搞混了;我的嘻哈会话从 Tribe 和 De La Soul 开始,到 Tribe 和 De La Soul 结束。顺便说一句,是 “托马斯”(Thomas)。

        • 为什么这么严厉?

          我不主张把曝光率作为主要原因。也绝对不是为了获得曝光率。100%同意漫画中的说法。

          我不应该用这个词。这个词明显带有负面色彩。

          当然,我希望每个人都能获得工作报酬。我觉得对于某些类型的项目来说,以开放源代码的形式发布是让人们发现并使用它的好方法。这可以带来新的机会。

          究竟是哪种类型的项目,在什么条件下,还有待商榷。

          我曾参与过几个项目,但很遗憾不能开源。这主要不是我的选择,利益相关者希望采用传统的市场策略,但在销售过程中却失败了,钱也花光了。我不禁在想,如果我们选择了另一种策略,还会有什么机会出现呢?

          • 感谢您的回复。是的,我被你的这个词说中了。对我来说,“曝光 ”和 “功绩 ”一样,都是有毒的。

    • 真好奇!我也是,这是我最接近后悔开源的项目。

      我还错误地实现了键盘和鼠标监控–你知道,这样我就可以为输入部分编写自动测试了!–多年来,它已成为功能请求、错误报告以及有关 Python 编程语言及其生态系统的一般问题的无尽源泉。

      输入事件提供了一个独立于平台的抽象,这确实很可怕,但最终看到人们使用它、制作 YouTube 教程并在 Stack Overflow 上讨论它,我觉得所花的时间是值得的。

    • 你应该用 AGPL 许可它;Anthropic 随后会联系你商谈商业许可事宜,或将其贡献回项目,因为 AGPL 强制要求在部署时公开服务器端代码。如果不这样做,他们就可以合法地使用、修改并从中获利,而无需分享改进成果或补偿给你

      • OP 提到他接管了一个现有项目。这样,他就必须追踪所有做出贡献的人,以便重新获得 AGPL 许可。即便如此,Anthropic 可能也会自己编写。

      • GPL对公司来说就像氪石。如果有人在正确隔离 GPL 代码方面犯了错误,那么很少有人愿意承担打开自己代码的风险,因此大多数公司都禁止在其产品和服务中使用 GPL。

        Anthropic 公司本可以另找一个库或自己开发一个库,而不是冒这个险。如果该库是基础性的,也许他们会选择商业许可证,但这通常是最后的选择。

      • 有什么能阻止他们在自己的 Claude 代码中<prompt>创建这个库,这样我就可以在我的项目中使用它,而不用担心侵犯版权</prompt>?

        • 对于足够小的代码库来说,这似乎是一个最终不可避免的现实。

          如果你有近乎无限的计算能力和一个足够好的模型,那么它应该能够创建足够多的测试用例来覆盖代码库的大部分方面(迭代数千次,直到正确为止),然后最终用一种新的语言或稍有不同的技术栈编写一个新的实现,并通过所有原始测试,同时再进行数百次迭代重构。

          为了避免许可限制和其他责任,我认为大型组织还需要十年时间才能做到这一点。

          • 许多组织的核心代码项目(甚至可能是操作系统)都是独立实现的,这甚至可能是安全的福音。在这样一个假设的世界里,依赖于实施的安全问题将不会影响到如此大面积的已安装软件。

        • 如果你给它提供了重新创建的库,那么这似乎必然是一种衍生作品,因此侵犯了版权。要证明是他们做的,可能是个挑战……

    • 感谢 enigo / 你们所做的一切,感谢你们在我的小项目中使用该库时给予的支持!

      • 不客气,很高兴听到有人使用它。希望你的新公司一切顺利:-)

    • _> 通过朋友的朋友,我发现 Anthropic 在使用 enigo 实现 Claude Desktop 未发布的秘密功能的团队中有一个空缺职位。我写了一封求职信并寄出了申请。自动回复告诉我,他们可能需要一些时间来回复,而且只有进入下一轮的申请者才会收到通知。过了几个星期都没有回音,我以为他们选择了其他申请人。

      等等,如果是朋友的朋友,你为什么不找人推荐?

      我很久以前就不再向大公司提出申请了,因为无论条件是否匹配,我都不会收到回音(唯一的例外是简街公司–他们在我提出冷启动申请后几乎马上就联系了我),而通过推荐途径,我几乎很容易就能在任何地方获得面试机会。

    • 也许你在申请竞争对手时,应该强调一下你在这家图书馆的工作!

      (在这里也可以作为专门报道提交!)。

    • 希望这能尽快成为一个成功的故事

    • 你指望他们雇用你,就因为你写了一些他们碰巧依赖的代码?

      • 我不知道你是认真的还是在开玩笑。如果你依赖某样东西,那么让它继续运行并保持良好状态对你来说是最有利的。有什么更好的办法来确保这一点呢?另外,它还能确保你对该事物的具体需求得到及时解决。

        • 开源与你未来的工作没有任何关系。当然,在简历上写一些内部使用的东西是很好的,但指望有人会因此而雇用你,这超出了我的想象。

      • 更诡异的是,这看起来根本不像是他最初写的,他只是接手了一个废弃的项目,改了一些代码,就觉得自己应该因此得到一份工作。

      • 嗯,是的,我也会

  2. 在我 14 岁左右的时候,我开源了一个脚本来自动配置 X11 的 xrandr。它很糟糕,有几个 bug。我在 KDE 邮件列表上提到了它,一位 KDE 核心贡献者告诉我这是令人尴尬的代码,让我自杀。我非常生气,再也没有为 KDE 或 X11 做贡献,大概花了一年时间才重新燃起编写代码的欲望。

    相对而言,我开源的其他东西都很顺利。

    • 收到这样的回复当然很糟糕,我很遗憾。

      但我也觉得这种回复背后的心理很有趣,因为导致这种极端的因素有很多。

      首先,我们不知道回复者的年龄,但我猜应该也是年轻人,或者至少是不成熟的人。在任何情况下,叫人自杀都不是成年人通常会做的事)。

      因此,这表明又有一个低年级学生急于证明自己的地位,需要与他人竞争而不是合作。我见过一个成年人的这种反应(辱骂其他论坛成员),但他显然有相当严重的心理健康问题(该用户已被禁言)。

      对于成人回复者,挫败感和乏味感会起一定作用。就我个人而言,早上的回复比晚上更慷慨。有时,我几乎是 “假装 ”耐心(当我不耐烦时)对待那些根本不思考、不倾听的人。

      总的来说,这是非常不平衡的。提问者只问一个问题。回答者一天可能要回答几十上百个问题。因此,你很难把每个问题都回答得很新颖、很重要,好像你之前已经听过无数次一样(尤其是当它就在常见问题中的时候)。

      即使问题微不足道,参与者也要回答得很好,这才是回答得好的一部分,也是任何论坛的质量所在。

      我们都曾经是新手。提出愚蠢的问题是我们成长的过程。回答愚蠢的问题是我们回报的方式。

      • 同时,这是莱纳斯 42 岁时的照片:https://forums.freebsd.org/threads/linus-to-opensuse-devs-ki……

        • 这位世界上最成功的开源开发者并不是无缘无故形成这种沟通方式的。我想我没有看到一个人提出过规定绅士风度所固有的阶级歧视。开放源代码的独特之处就在于各个阶层的人都能参与其中,而工薪阶层的人并不像上层社会的人那样善于捕捉微妙的交流方式。莱纳斯喜欢用一种毫不含糊的方式与任何阶层背景、任何英语水平的人交流。这样做的代价是,它触犯了高度驯化的精英们的敏感神经。

          • 这种观点很奇怪。过滤你的交流,即使你认为别人是低能儿,也不说他们是低能儿,这不是阶级歧视,这表明你尊重他们。你不需要成为 “精英”,就能发现他说的某些话令人不快。

            • 开源没有任何形式的参与筛选,比如严格的招聘程序,或者对学术成就的要求,这让他们有权获得尊重。很多人都是不合格的、精神分裂的等等。如果一个项目对待这些人,把他们与最优秀的人放在同一水平线上,就会打击士气。请记住,开源没有头衔,没有职位级别,也没有薪水。因此,尊重是人们参与项目的唯一希望,因此,免费提供尊重是完全荒谬的,因为这样人们就没有任何收获,也没有任何希望。如今,解决这一难题的办法就是禁止所有非大科技公司雇员发表评论,并关闭评论区。然而,开源是在 90 年代和 2000 年代的文化中成长起来的,这种文化高度重视言论自由和开放参与。如果你必须像Linux那样接纳 “欧米茄”,那么他们就必须扮演 “欧米茄 ”的角色。这在某种程度上更好,因为欧米茄仍然是群体的一部分,仍然会受到关注,而且他们中的许多人都会在这个角色上有所进步和成长。

          • 但他甚至不是一个成功的开发者,只是一个人物。

            Linux 和大多数成功的开源项目一样,是一个资源库。如果没有企业的代码捐赠和支持,Linux 将只是另一个业余操作系统,而他个人对 Linux 成功的贡献微乎其微。

            莱纳斯只是幸运地得到了时机和许可证,这几乎就是他个人贡献的全部。

            这就引出了一个问题:为什么社区会容忍他这么久?

            • 是啊,除了他在 git 上成功了两次,而且还是在他爬进洞里几周之后。他就是伟大的证明。而不是像你这样的无名小卒。

              • 你所回复的评论肯定很糟糕,但我们需要你克制以人身攻击来回复的冲动。您的评论如果没有最后一句就好了。

                我们感谢您为 HN 做出的许多积极贡献,我们只是希望您牢记,只有足够多的人努力保持 HN 的良好形象,HN 才能成为一个良好的参与场所。

        • 叹息,简单的时代

        • TLDR 的意思似乎是 “不管是哪个白痴做的,都是智障”。它并不像 KYS 那样受年轻人欢迎(在一个主要由十几岁男孩玩的游戏中,我们一直需要对许多玩家进行管理并延长禁言时间),但说得温和一点,它的确不是特别好。

      • 你说的是有严重心理健康问题的成年人–如果这些人在开源贡献者中比例过高,我也不会感到惊讶。

      • > 告诉人们去自杀并不是成年人在任何情况下都会做的事情。

        这是典型的阿尔法书呆子的行为,他们的自我价值来自于在某些神秘领域的优越感。

      • 我最近让一个人去自杀。因为我对他们产品的发展趋势感到非常沮丧。例如,他们推出的 wysiwyg 编辑器带有 “丢失所有文本输入 ”功能。

        我在写这些刺耳的话时,对该公司的改进毫无期待,但我希望至少能让客户支持人员重新考虑他们的人生选择,并退出这家邪恶的公司。

    • 这让我想起了我在 Erlang 邮件列表中作为新人提供的一些对 Erlang 的印象。

      我的一个建议是,他们应该加入哈希表,而不是依赖于记录(带有命名键的链接列表)。我被骂无知,从此再也没给那个邮件列表发过邮件。过了一段时间,他们最终在语言中加入了哈希表。

    • 人们不禁要问:为什么《行为准则》会流行起来?

      • 我对此记忆犹新,尽管 Lisp 曾被认为是有史以来最好的编程环境,但它最终还是消亡了,原因在于 Lisp 程序员(当时被称为 “Lisp weenies”)在情感上的滥用令人难以置信,以至于没有人相信他们,也没有人愿意与他们交流。你向他们寻求任何帮助,他们都会说你是白痴,应该自杀。

        (这些人的主要例子是一个叫埃里克-纳古姆(Erik Naggum)的人,但仍有一些人存在于某个地方,我昨天在一个编程 reddit 上就遇到了一个。你可以认出他们,因为他们会不停地告诉你 Lisp Machines 有多棒,但却无法解释为什么没人使用 Lisp Machines,而且出于某种原因,他们坚持称 JavaScript 为 “ECMAScript”)。

        话虽如此,我还记得大约十年前,行为准则被一个人推广开来,这个人后来因为骚扰初级程序员而被 GitHub 解雇(她声称这是 “指导”,似乎在精神上无法察觉自己的行为可能有问题)。因此,这在当时看来是一个明显的名誉洗白案例。

        • > Lisp 程序员(当时被称为 “Lisp weenies”)是如此令人难以置信的情感虐待,以至于没有人相信他们,也没有人愿意与他们交流。

          同意。

          > 你向他们寻求任何帮助,他们都会说你是个白痴,应该自杀。

          不过,我从来没遇到过这种情况。我以前在 comp.lang.lisp 上混过。

          我记得有一次,我写了一个小工具,用来读取 /etc/ 中的一个文件,并根据其中的设置做一些事情。我询问了读取 ini/config 文件的最佳方法,但没有提到 /etc。

          我因为没有把配置文件存储在 s-expr 中,而是直接使用内置的阅读器而受到了抨击……不用说,我永远不会把 /etc 中的所有文件都换成 s-expressions。

        • 关于 Erik Naggum 的一篇文章: https://en.m.wikipedia.org/wiki/Erik_Naggum

      • 但 COC 从未流行起来,商业类型的人强制执行,黑客们与之抗争,最终败下阵来

      • 所以,我绝对百分之百地相信这个故事:当我在 200x 年上网的时候,有很多精英主义和各种欺侮仪式,还有其他事情。这是一件非常真实和不幸的事情,与当时上网的美好经历(我认为)不谋而合。

        不过,我真的不认为大多数人都需要别人告诉他们不要叫别人去自杀,而且在我年轻时混迹的许多地方,我坚信你会因为 “辱骂 ”而被临时禁言。我曾是论坛版主,我可以告诉你,我会毫不犹豫。

        我想我们都明白,行为准则的戏剧性事件通常与其中包含的实际规则并无太大关系,这些规则从表面上看并无太大争议,而是项目中的利益相关者通过建立行为准则和执行准则的管理结构等举措,将权力转移给其他人的方式。而且,我认为大多数人可能不会因为告诉别人去自杀可能会让你被论坛停职而感到不安…… 相反,当你看到一个项目或组织的 CoC 开始向外延伸,超出了人们真正想要阻止的范围(有毒的、非生产性的交流),超出了项目的边缘(并对互联网的其他部分进行监管)时,戏剧性就出现了。我想举出的两个显著例子是 Python 的 Tim Peters(据任何人所知,他确实没有做错任何事)和 Freedesktop.org 的 Vaxry(他可能有点不成熟,但主要被指责没有管理好 Hyprland Discord…… 这是对 Hyprland Discord 的合理抱怨,但不是他被 Freedesktop.org 禁言的充分理由)。

        当然,实事求是地说,这里没有百分之百的答案;如果由于是原始开发者而对项目拥有控制权的利益相关者不想将任何控制权让给他人来执行 CoC,他们其实也没必要这样做(尽管在现实中,实施 CoC 的外部压力可能会使他们的立场站不住脚)。在这种情况下,你必须依靠这些人对自己的合理行为负责,而人无完人。这就有点像警察部门在进行内部调查时没有发现任何问题;即使你非常支持警察,你也一定会对他们在进行调查时是否真的合理公正感到怀疑。

        不过,我一般都支持 “我所知道的邪恶 ”的观点,即项目作者和最大的利益相关者一般都应该在开源项目中保持大部分的权力和控制权,包括有关管理的最终决定权。事实证明,在开发者行为特别恶劣的情况下,分叉作为一种缓解策略已经足够有效,而且分叉需要付出代价,这也是分叉的一种特点,因为这样的权力转移并不容易; 虽然我不能保证一个项目的原作者和维护者会合理公正地行事,但我至少可以说,我希望他们以项目的最大利益为重,而那些四处寻找成熟项目和组织以加入具有权威的角色的人,往往_不是_你通常希望_进入这些角色的人。这就意味着你需要的是真正关心项目的人,而不是那种只追求权力的人。(很抱歉,我们中间有很多这样的人,他们绝对肮脏到可以打着任何幌子来获得一点点控制权。在网络社区中经营一段时间后,你就会发现这一点)。

        我想说的是,这种情况的发生并没有以令人满意的方式得到纠正(听起来确实不像),这对当时的互联网状况和 KDE 的邮件列表来说都是很糟糕的。我认为,当人们在重大事件中推动这些事情时,充其量只是被误导了,因为通常情况下,核心问题并不在于 “不要告诉人们互相残杀 ”的规则不存在,而在于人们实际上首先就需要这样一条规则来决定这种行为是不可接受的。这不是什么复杂的灰色地带案例。我不认为人们在戏剧事件发生后提出这样的建议是恶意的,但我仍然认为在 99% 的情况下这样做是错误的。

        (我能说的最有利的一点是,我认为 CoC 可能对 Linux 或 Kubernetes 这样的大型项目有价值,但到目前为止,执行起来总让人觉得还有待改进。偶尔看到有人因为技术上的分歧而公开威胁要与 CoC 委员会联系,这让我很不爽。)

      • 因为人们盲目相信没有背景的轶事就能代表什么?

      • 你每天都在提醒自己,行为准则的价值取决于背后的管理团队。

    • 很遗憾发生了这种事。这是非常恶劣的行为。

    • 哦,哇,少年时代的战争旧伤又复发了。

      我的朋友老是把自己锁在根目录之外,不得不通过单用户来恢复系统。这很困难,原因有很多,包括远程手动每次通话费用高达 50 美元(含 50 美元)。我决定研究一下为什么 su 只能在 root 环境下工作。我发现了一个非常简单的检查方法,但我认为这并不合理。我打了第一个补丁,并自豪地发布到 FreeBSD 邮件列表,以为自己将改变世界。结果,我却被大家骂得狗血淋头,说我的朋友太笨,不会使用 FreeBSD,还说了其他一些毫无根据的话。我甚至没有为我的补丁辩护,我花了太多的时间来宣传 FreeBSD,这让我怀疑我对这个项目的支持。

      总之,快进到 5 年前,我在给同事们讲这个故事的时候,决定去查查 su 的源代码。有人打了我的补丁并应用了它(没有注明出处)。从那以后,我就完全脱离了 FreeBSD,我的开源作品再也没有被如此负面地挑剔过。

      • 你仍然拥有你的补丁的版权,FreeBSD 的管理现在好多了。我认识一位前 FreeBSD 核心团队成员,我相信他会很乐意看到您的工作最终得到认可的:)

        如果您有兴趣,我很乐意与您联系–电子邮件地址在我的个人资料中。

        • 嘿,谢谢!我拥有版权,就像 stack overflow 的帖子所有者拥有版权一样。实际上,这个改动大概只有 4 个字节,它被包进了一个 “重构 ”提交中,所以就没必要引用 OG 作者了。我当时也玩过同样的游戏,所以我根本没生气。

          我还是会联系他们,因为 BSD 开发在当时是个小社区,我们可能有过交集!

        • FreeBSD 看起来确实比以前更有指导性了,但如果你按照手册去做的话,它仍然建议将计算机设置成单个的特殊雪花,而不是管理得当的牛。

          比如,如果你的系统上运行着有用的服务,那么它就不应该安装定制的内核,也不应该安装 C 编译器。它应该有的是备份,以及阶段性/测试/恢复配置更改的方法,而不是直接在 prod 上进行更改。它……没有做到这一点。

          我认为,如果你提出这个问题,你只会收到上百个抱怨,说 "我用胶布和胶带搭建了一个系统来做这个,所以没问题"。我猜是因为了解声明式编程的人都在使用 Docker。

          • > 如果你照着手册去做,它还是会建议你把电脑设置得像个别特殊的雪花,而不是管理得当的牛。

            这是一个完全合理的观点。"牛,而不是宠物 "是一种关于最佳实践的观点,而不是一种必须将不同意者逐出社区的宗教教条。

            • 这就是 Linux 的工作方式,但 BSD 是一种集中开发模式,如果你不同意项目的方向,实际上就必须离开。而且,由于资源有限,你显然必须集中资源才能完成任何事情。

              除此之外,我认为目前的方法是错误的,因为它已经过时了。FreeBSD 以 "服务器/嵌入式操作系统 "为卖点,但其假定的用户基本上都是家里只有一台电脑的人,他们在邮件列表中看到这样可以更快,于是就随意调整系统参数。而这种人正是操作系统开发人员或小型企业/学术机构的系统管理员–基本上就是那些一开始就喜欢使用电脑,并希望有借口在电脑上花更多时间的人。

              但在谷歌发布 SRE 一书(其中有一章讲述了如何避免手动编辑)时,他们就应该意识到这已经过时了,当然,在虚拟化和云托管开始普及时也是如此。

              当然,很多人仍然认为,拥有一台名字很傻的电脑并对其进行随意的 sysctl 调整是件有趣的事,所以他们不会喜欢我告诉他们这应该是件无聊且无法完成的事。不过至少还有 Docker 和 Nix。

            • 有道理,但我的经验是,FreeBSD 的自动化安装介于乏味和不可能之间。这也是我在多年后继续使用 FreeBSD 的重要原因。

               不是宗教教条,不同意的人必须被赶出社区
              

              这是一个公平的评价,除了 FreeBSD 从一开始就是一个非常有主见的项目这一事实。

      • 我注意到 Arch 安装程序有一些看起来不一致的行为,我想知道为什么在我看来会是这样。为了更好地理解安装过程,我在论坛上问了很多问题,目的是为我之后的其他人改进安装指南。

        有人告诉我应该忽略我看到的错误信息。当我继续询问时,一些最活跃的成员开始侮辱和嘲笑我。然后其他人也开始加入进来。

        我当时唯一的想法就是为我之后新加入拱门的其他人改进指南。相反,我只受到了侮辱和嘲笑。我卸载了 Arch,再也没做过任何事情。那个社区的毒性至今仍让我感到愤怒。

      • 我是否理解错了,su 是用来切换用户的,而你的补丁让它使用目标用户的凭据而不一定是 root?

        我在阅读时感到困惑,因为我几乎只用 su 来切换到超级用户账户,而要获得 root 权限,显然必须是 root 用户,否则就会有安全问题。查阅了一下 su 在 FreeBSD 上的功能,我发现它可以切换到任何用户。我以前还真用过。这是你做的?

      • 天哪,这绝对是最糟糕的。这种例子让我热血沸腾。不幸的是,这种事在生活中经常发生,尤其是在商业领域。

    • 在 PERL Usenet 群组成立之初,我提出了第一个问题,并用 “新手 ”一词来形容我的技术水平。我收到了一条自动回复,责备我使用了 “新手 ”一词。

    • 病态的好奇心让我想知道那是谁。在我为 KDE 做贡献的时候,我也曾像个孩子一样撒娇(虽然你描述的情况不是我的风格,也从来不是)。在我的印象中,那是一个相当多元化的、能够接受怪胎和极客的群体,而如今随着钟摆的右摆,这些怪胎和极客很可能会被避之唯恐不及……包括偶尔在 HN 上发表评论的某位 Tool 爱好者。

      叫别人去自杀是非常不恰当的,你不应该这样做。

    • 嗯。

      当人们回忆 “过去的互联网 ”时,往往会忘记它有多么充满敌意。

      作为魔鬼代言人,年轻人参与这种活动并不常见,但苛刻、不公平的批评却经常发生。

      今天,它依然存在,但规模比当年小得多。

    • 哇,我真没想到会有这么恶劣的行为,太可怕了。

    • 老兄,不管是谁给你写的,都是一坨屎。忘了他们吧–几乎可以肯定,有这种行为的人在生活中有更大的问题,不值得你花时间或关注。你是一个 14 岁的孩子,却制作了一些东西并花时间发行。这需要奉献精神和勇气。干得好

    • 很遗憾听到这个消息。为你的坚持鼓掌!

    • 我希望这个人能够改过自新,或者 KDE 已经设法摆脱了他们。我希望 KDE 能做得更好。

    • 叹息,美好的过去

      • 那时候你可以叫青少年们没事就自杀?这就是你的想法?去找人帮忙吧

  3. 说实话,我真的很后悔。我在自由和开放源码软件项目上工作了 20 年,为这些项目和其他自由/开放源码项目投入了大量的时间、精力和金钱。起初,这让我很开心–从陌生人和未知社区那里获得赞誉会让人上瘾。你会坚持下去,因为这感觉很好,你会产生一种道德优越感。但多年以后,当最亲近的人都不在身边时,你会停下来反思,你把多少精力投入到了随机的陌生人身上,而不是那些与你分享生活的人身上。如果我在自由和开放源码软件项目上投入的时间和精力哪怕只有1%,那么我和我所爱的人之间的关系就会幸福得多。现在我在想,这些年我到底在做什么https://giis.co.in/foss.html

    • 这是一篇很有想法的文章,我也很同情这种情绪,但我不认为这真的与 “开源 ”有关。如果你把时间花在制作火车模型、研究汽车或其他爱好上,也可以这么说。

      • 同意。“开源 ”意味着你是免费的,但你的工作会让他人受益。你可能有机会将火炬传递给他人。而对于业余爱好,你只能自己做。我曾在业余时间演奏乐器多年。我非常喜欢它。我最终放弃了,因为我的生活发生了变化,出现了许多其他事情。现在回想起来,我仍然觉得这些年的经历很有趣。但现在我对它没有任何感觉了。

      • 是的,这和工作狂没什么区别。所以,从这个角度来说,这不是主题,因为它与许可证无关。不过,这是一个很好的教训,从技术上讲,它也是对 “后悔开源某些东西 ”的一种回答–只是 OP 重新考虑开源的是他们的生活,而不是他们的软件。

    • >如果我在自由和开放源码软件项目上投入的时间和精力哪怕只有 1%,那么我和我所爱的人之间的关系就会幸福得多。

      这是一个明智的结论,我想它会影响很多人。我知道这确实影响了我。我个人的做法是,我更多地投入到理论和道德问题中,而不是我周围的实际生活问题。我的科技生活丰富多彩,但我的现实生活却很贫瘠。

    • 我可以想象,当动机是外部的(赞美)时,就会出现这种情况。当我写开源软件时,那是因为我必须写出来。

      我期待赞美、嘉奖、名声什么的吗?我期望,而且这种情况确实发生了,因为开源,我被雇佣了无数次。甚至我的朋友(!)也因为我写的开源内容而被雇用。

      但主要的动机是内在的–我只是想看到它成形。就像一个忍不住要画画的作家,或者一个忍不住要写作的作家。

      我还有遗憾吗?是的,因为我本可以把时间用在更好的事情上。但任何爱好都会有遗憾。

    • 你所描述的是一个有趣的道德风险变种:你与你对他人产生的_积极_影响脱节了。也许并非一无所获:如果你去联系那些喜欢你作品的人呢?

    • 谢谢你的诚实反思。这很好地提醒了我们要思考工作的轻重缓急。

  4. 是啊。

    很久以前(2016 年左右),我发布了一个虚幻引擎 4 插件,可以让人们通过纹理将 chromium 嵌入式框架视图嵌入到引擎中,这样就可以制作花哨的 HUD 或其他东西。

    Epic Games 很好心地给了我一笔开发者补助金,让我开源并制作这个插件,这对当时的大学生来说简直酷毙了,还帮我交了学费。

    愤怒的游戏开发者们基本上都希望我免费为他们解决所有问题,他们的数量令人震惊,此外,另一位开发者补助金的接受者嫉妒我 “只是做了一个蹩脚的插件”,却得到了接近他们补助金的钱。

    (虽然是转述,但基本上就是这么回事)。

    没有人懂得感恩,笑。

    • 我不知道其他类型的开发有什么不同,但从目前来看,游戏引擎(Unity、虚幻、Godot?问题在于,数以百万计的新开发者都在使用它们来制作游戏。他们没有任何经验。如果他们在使用你的插件时遇到任何 bug,即使与你的插件完全无关,他们也会要求免费支持。

      比方说,您制作了一个可以序列化/反序列化 JSON 的插件。他们在制作 FPS 时,发现枪的射击方向不对。他们会在你的支持区询问为什么不能正常工作,尽管这与你的插件毫无关系。

    • 我一直在想这个问题。我使用开源软件,但我与开发者的关系从未亲密到足以说声谢谢的程度。

      在我身边的人,都是提出要求和抱怨的人。

    • 嘿!我用过你的插件!

      在我的案例中,它实际上支付了几张账单!谢谢。

  5. 在我年轻的时候,为了说服我的公司开源一个我引以为豪的工具,并认为这将有助于我们的品牌和吸引新的开发人员,我与国外的律师进行了长期而艰苦的斗争,并花了很多个深夜在电话上。他们最终批准了,但不允许我接受功能或更新、客户服务、花时间修复、接受拉取请求等。不幸的是,我的名字被写在了上面,我开始憎恨我曾倡导的这一事实,被迫眼睁睁地看着代码腐烂,兴趣减退,因为公司除了定期把一些死代码扔到墙外,根本无法理解任何开放源码软件。

    我离开后,仍然会收到沮丧的用户发来的邮件,但我再也没有访问权限了。我本可以将它分叉,但这似乎太混乱了。我提出了一些建议,并祝愿他们好运。

    这也是一个教训,但主要还是让我相信,在未来的十年里,我不会再摇摆不定,而是会去寻找更小的公司就业。

    • 我认为,我们都必须在年轻时吸取教训,强迫人们做他们真的不愿意做的事情,很少有好结果。你总是希望他们以后会顿悟,觉得你是对的,但他们几乎从来没有真正按照你的意愿去做(你希望他们支持开源项目),即使你是对的,他们也很少会明白这一点。

    • 如果有精力、时间和意愿,我就会像 yournamescrambled@email 这样以匿名合作者的身份进行开发。

  6. 就我个人而言不是这样,但在我的职业生涯中,我曾两次参加过与那些创建了半知名开源项目的人的访谈循环。如果你经常阅读 HN,你就会听说过这些项目,但这些项目并不是那么重要,以至于如果它消失了,你也想不出其他替代方案。

    他们都对没有将其商业化表示遗憾。作为采访者,对我来说最奇怪的是,我听到他们想象如果他们将其商业化,而不是以开源方式发布,他们会变得多么富有,而完全忽略了一个事实,即这些项目之所以流行,是因为它们是开源的。

    我想这也是各种项目在发展到一定程度后试图闭源和商业化背后的思考过程。

    • 要想摆脱工资奴役,而又不是生来富裕,唯一的办法就是成为企业主,并让企业形成规模。

      我明白人们为什么会有这些幻想。巨大的企业都是建立在开源代码基础上的。

      我们中的许多人终其一生都在编写能为雇主带来持久利益的软件,但我们的回报却是每小时固定的酬劳。

      我不同意你的观点的地方在于,商业化和开放源代码的流行根本不是相互排斥的。FSF 非常清楚地表明了这一点:开放源码与为某种服务或二进制的便利性之类的东西收费是完全兼容的。

      软件自由实际上是指源代码的可用性,以及你修改和发布修改内容的权利,而不是啤酒自由中的自由。

      商业化并不一定意味着让客户血本无归,也可以是大多数人无需支付一分钱,就能享受完全开源的体验。我认为nginx plus就是这种模式的一个很好的例子。我从未见过为nginx付费的人,但有一些面临大问题的大公司却为nginx付费。

      另一个例子是 Discourse 论坛。你可以为支持和托管付费。

      • > 要想摆脱工资奴役,而又不是生来富有,唯一的办法就是成为企业主,并让企业规模化。

        当然,“企业主 ”是指拥有股票。

        把收入的 10%-20%存起来。将其投资于指数基金(我们可以争论具体是哪种指数)。工作几十年。富裕退休。

        然后在你死后将这些财富留给你的继承人,让他们在整个过程中占得先机。

        > 我们中的许多人终其一生都在编写能为雇主带来持久利益的软件,但我们的回报却是按小时计算的固定费用。

        雇主承担着软件不会带来任何好处的风险。无论如何,我们都能拿到报酬。我喜欢这种交易。我会投资于多元化的市场指数,而不是我的单一程序,非常感谢。

      • > 要想摆脱工资奴役,而又不天生富有,唯一的办法就是成为企业主,并让企业形成规模。

        从事金融工作或(在 2025 年)从事人工智能研究的人,如果转行到 Meta 公司,可能会获得梦幻般的签约奖金,但他们可能不同意。

        • 从事金融工作的人并不适合提出异议。他们还没有摆脱工资奴役,即使他们在技术上有能力摆脱。真正高薪工作的有趣之处在于,人们往往沉浸其中,忘记了从中解脱出来。

          • 现在,我的意思是,你可以在金融业工作一段时间,如果你的牌打得好,你可以年轻地退休。

            是的,你可以说,在你工作的时候,你是工资的奴隶。也许吧。

            但不要告诉我,当你在三十多岁退休时,拥有几千万的时候(如果你的牌打得好!),你就不再是奴隶了。

            > 人们往往沉浸其中,忘记了从中解脱出来。

            诶,这和自己做生意有什么区别?

            • _> Eh, how is that different from going to business by yourself?

              迂腐地说,不太可能有工资。但是,即使我们宽松地使用这个词,所描述的那种可扩展的业务在出售之前通常也不会赚到钱,因此你实际上是在有可能的情况下被迫退出的。

              从技术上讲,高薪的工资奴隶也许可以很快离开,但实际上,金手铐往往非常坚固。值得注意的是,这句话用的是 “从事金融工作的人”,而不是 “短暂从事金融工作的人”。

        • 他们的薪水可能很高,但这不是我真正的意思。

          高薪仍然是高薪。

          企业主的劳动不受市场价值的制约。

      • >摆脱工资奴役而又不是生来富有的唯一方法就是成为企业主,并使企业规模扩大。

        另一个办法是:嫁给有钱人。你和这里的大多数人都没有想到这一点,这是可以理解的,因为这里的大多数人可能都是 XY 染色体。

      • > 我们中的许多人终其一生都在编写能为雇主带来持久利益的软件,但我们的回报却是每小时固定的酬劳。

        有很多公司提供股票补偿。当然,你可能得搬家才能为他们工作。

        尽管如此,按小时计算的固定酬金可能更划算。如果你从利润中提成,这些利润可能是负数!

        • 我认为股票薪酬并不是一回事,尤其是当条款表的结构已将早期员工的价值降至最低时。

          公司会调整其股票补偿计划,以确保不超过市场补偿标准。

    • 一个项目不被广泛采用就无法实现货币化,而如果没有排除货币化的许可,它就无法被广泛采用:(

      • 有两种模式可以解决这个问题。

        a) 出售支持合同

        b)让贡献者签署版权协议,将项目授权为 GPL/AGPL,然后为无法使用的人出售商业许可证

        • c) 开放核心模式: https://en.wikipedia.org/wiki/Open-core_model

          这似乎是目前最常见的模式

        • 不,他们没有。

          销售支持合同其实很难。

          GPL/AGPL 排除了广泛采用的可能性(如今)–祖先明确提到了 “许可”。

          • 所有生意都很难做,但我不认为销售支持对一个生意来说特别难。上述两种方式是 x264 开发的资金来源,但也是 Klara 用于 BSD 和 Igalia 用于网络浏览器的方式。

      • 这是项目与企业的区别。

        他们做了一个开放的项目,让社区为其做出贡献并采用它。

        他们希望这是一个企业,而不是一个项目。企业有支持、有销售,而且比服务于自己的开源项目有更高的期望值。

      • 如果这是真的,非自由软件就永远赚不到钱了

    • 这种人让我很生气。

      “开源和自由(*)”星号代表 “直到我获得牵引力或风险投资资金”。

      这是诱饵和调包,是对社区善意的利用。

      • 开发者不能删除旧的开源版本,所以社区总是可以自由地分叉这些版本。

        • 但这样一来,你又会制造出一群像原文中那个人一样的人。

          是免费的叉子就够了,还是人们应该得到报酬?项目所有者是否从社区中雇佣了一些人?

          • 问题是原作者必须快节奏地开发和添加新功能,否则人们就会坚持使用开源版本。因此,这不仅仅是免费宣传。

      • 有了足够的社交媒体,一切皆有可能

        – Mullenweg, or some other hack

      • 社会是诱饵和调包。你必须支付房租和食物/必需品的费用,否则你就会死在大街上/烂在大街上,而每个政治文盲以及社会结构和机构都在赞叹自由民主和资本主义是多么神奇、多么热爱自由。

    • 可能也是他们自夸的方式,比如,“看我做的这件事多么伟大,我可以靠它发财!” 他们的意思可能不是后悔,而是 “嘿,我做的工作很有价值,你应该雇用我”。

  7. 我很后悔将黑曜石同步的逆向工程开源。我这么做主要是为了个人使用,但我认为这可能对其他人有用。经过一番猫捉老鼠的过程后,他们修复了所有 “漏洞”,让你可以更改同步和发布端点,现在我还在使用一个非常过时的版本。最近我找到了另一种方法,可以让它重新在 IOS 上运行,但绝对不能发布。

    • 为什么他们认为可以更改运行在自己电脑上的软件配置是一个 “漏洞”?我以前听过很多关于黑曜石的好话,但听到这些话基本上就把一切都毁了,这意味着我将强烈建议大家不要再从他们那里购买任何东西了。

      • Obsidian 免费发布他们的软件,靠一个名为 Obsidian Sync 的核心插件赚钱(注意,它不是开源的)。Obsidian Sync 依靠他们的云提供 e2ee 文件同步。

        黑曜石还拥有一个丰富的插件生态系统,其中有许多开源插件可用于相同的目的(你也可以使用 gdrive、dropbox 等)。

        在我看来,他们发布了一款以隐私和安全为重点的专有插件(这是他们的核心业务),他们不希望其他插件可以任意更改他们插件指向的服务器。

        假设他们有一个使用 Obsidian Sync 的政府客户,而同步 URL 可以通过配置更改轻松改变–现在客户认为他们在使用 Obsidian Sync,但实际上他们的数据去了别的地方。

        我不认为你会惊讶地发现,例如,dropbox 守护进程有保护措施,以确保它指向的是 dropbox.com。为什么你会认为黑曜石会有所不同呢?

        (免责声明:我正在开发一个不同的插件,为 Obsidian 添加文件同步和协作功能。)

        • 我的意见是,他们应该制定一个规则,规定官方列表中的插件不能修改同步网址,以防止滥用和网络钓鱼,但用户仍然可以做任何他们想做的事情。手动添加插件的过程已经足够让用户意识到他们所做的事情并不 “安全”。

      • 他们相信,通过许可最后通牒,你可以放弃所有权,寡头垄断和政府已经同意了。

    • 我一直都是把我的黑曜石保险库放在 iCloud 中,然后就结束了。不需要额外的同步服务。

      • 这招对我很管用,直到 iCloud 开始主动缓存清除我的所有文件,所以我的保险库在 iPhone 上需要十分钟才能打开。每隔几天就会这样。

        当我试图从 iCloud 上复制我的存储库时,复制失败了,两年的笔记永久丢失了。

        我再也不会把任何有价值的东西放在 iCloud 上了。

        • 我又想起了复制 iCloud 指针/文件夹时的情景,当时我以为自己是在复制包含实际数据的文件。哦,好吧,反正谁会需要那几年的文件呢。

          • 有趣的是,史蒂夫-乔布斯曾嘲笑 Dropbox “是功能而不是产品”,而苹果公司即使尝试了几十年也无法实现这一功能。

        • FWIW 最近有一个选项,可以永久保留下载/本地文件夹。

      • 这个功能非常好用,我已经用了好几年了。我甚至可以在 Windows 上使用 iCloud 客户端完美运行。

        • 真的吗?当我在 Windows 客户端上添加一个新页面时,它永远不会到达我的手机,而是停留在某种奇怪的刷新图标状态。

          我在一台 Windows 笔记本电脑和另一台主机上都试过了。最后我只能把 iPad 放在身边。

      • 当你想在 linux/windows/android/macos/ipad 上访问你的保险库时,情况就变得复杂了。

        iPad 才是真正的障碍,我不想为其他所有东西设置一个 icloud 中转站,也不想在 linux/android 上进行 icloud 同步。

        • > 你想在 linux/windows/android/macos/ipad 上访问你的保险库吗?

          为此,除了 iCloud 之外,我还使用 Syncthing。它的效果非常好,我可以在不同的设备上实时看到我的编辑内容。

          [1] https://syncthing.net/

      • 它能在 Windows 或 nix 系统上运行吗?

    • 为什么不创建自己的插件?或者使用 Syncthing、Git、LiveSync、远程保存等…

      • 我希望它能在 IOS 上运行。这些都不可行。至于为什么不是我自己的插件,那纯粹是无能。我不太了解 TypeScript,而完成 API 只花了几天时间。后来我试着做了一个同步插件,但发现文档很难理解。最后,我觉得不值得花这么多精力,于是我又回到了 neovim 和 syncthing。对于 IOS,我正在侧载自己用 fyne(Go)编写的应用程序,但功能非常基本。

    • 太糟糕了。

      作为自由软件爱好者,这让人大喊 “不要在封闭的生态系统中投入时间”。

  8. 我在 BIGCO 工作时,曾试图通过他们的 “发明任务审查委员会 ”开源一个周末个人项目。这变成了一场官僚主义的小噩梦,我最终从未获得发布该项目的许可,也不清楚我的雇主是否选择对其主张知识产权所有权。现在回想起来,我真希望自己从未通知过他们这本书的存在,而是用化名发布了它。

    • 每当我加入一家公司时,我总会在我的 “先前发明 ”清单上创建一堆假名。当我开放源代码时,如果描述足够接近,我就用我清单上的名字给它命名。

      • 太聪明了。我喜欢

      • ^^^^ 这个想法非常好,而且思维超前。

        提前制作占位符以容纳副项目的建议很棒。

      • 您认为您的同事对于什么是诚实和值得信赖的行为有相同的看法吗?

        您在哪些方面信任或不信任您的同事?

        你对此有何感想?

        • 同事有什么关系?

          更好的问题是,你在哪些方面信任或不信任你工作的公司?

          这个问题的答案可能非常复杂,而且在很大程度上取决于公司。这也取决于将来谁会收购这家公司,而他们可能根本不值得信任。

          • 情景是有人在工作环境中,在签署的文件中撒谎和欺诈。

            职场不诚实的起点和终点在哪里?

            这个人认为同事们有相同的规则,还是不同的规则?

            这对他们的工作环境有什么影响?

            (顺便说一句,我讨厌 HN 给合理的评论打降分)。

            • 当公司决定他们有权在员工的正式工作时间之外支配时间,而且他们不应该在员工的工资和就业保障中适当反映这一点时,问题就开始了。

              此外,作为一名员工,在一天结束时,你有权为自己着想。你可能没有意识到这一点,因为你已经患上了 “创业炎”,每个人都必须全力以赴才能取得成功。

              • 我确实意识到,员工必须为自己着想(因为公司,包括初创公司,通常会从员工身上索取、索取,然后尽可能把尸体扔掉)。

                但是,员工在公司里是与其他人一起工作的,因此我们希望知道彼此间什么可以信任,什么不可以信任。

                如果有同事从事刑事欺诈,他们是否有严谨的理念,知道什么时候该做,什么时候不该做?他们如何对待团队?在他们认为公司无论如何都不应该要求的事情上欺诈公司是否可以,但他们仍然会对团队成员诚实和负责吗?如果能知道这些,那就太好了。

                如果不是那么多人急于对不符合他们膝盖反应的事情进行降票,我们就可以讨论这个问题了。

                • 对您评论的回复可以写满一本书。

                  简而言之:这很复杂。当有人把价值几美元的办公用品带回家私用时,没人会在意技术上的 “刑事欺诈”。大家都认为,贪污一百万美元就该坐牢。与此同时,像从公司免费食堂吃第二顿午餐并带回家当晚餐吃这样的事情,究竟有多严重,也会引起很多分歧。但这也可能与你是否可以信任这个人的代码审查没有太大关系,因为人是多面的,在不同的领域使用不同的道德标准。

                  > 所以,我们想知道我们能从对方那里信任什么,不能信任什么。

                  唉,我们无法知道。有的事情显然是好的,有的事情显然是不好的,中间还有一个巨大的灰色地带,没有人会对此达成一致,公司会试图制定一些政策,但这些政策总会在某些地方走得太远,而员工总会逃避一些他们认为不好或不重要的政策。

                  我认为,如果一家公司制定了过激的不良政策,试图对员工利用自己的时间所做的事情提出所有权要求,而员工则谎称自己所做的事情是在受雇之前完成的,这就是灰色地带的一个有趣的例子。

                • > 如果一个同事参与了刑事欺诈,他们对于什么时候该做,什么时候不该做有严格的理念吗?他们如何对待团队?在他们认为公司无论如何都不应该要求的事情上欺诈公司可以吗?如果能知道这些,那就太好了。

                  我认为你真正想问的问题是,他们是否可以被信任,从而使系统 “发挥作用”。

                  问题就在这里:即使你有书面合同,即使你把一堆额外的规则塞进去,你也不可能百分之百地保证别人会按照公司的意愿和愿望行事。

                  归根结底,人们最终总是要为自己的最大利益着想,而额外的不需要的规则会促使他们从交易的角度考虑问题,制度和道德都会受到损害。所以,解决的办法就是善待他们,让他们一开始就不要考虑这些。

                • 呀。我现在是个骗子了。

                  你对转录有什么看法?

            • 这种情况也是一种公司行为,好像他们拥有员工的私人时间。

              如果工作场所要制定愚蠢的规则,那么诚实勤奋的员工就会觉得在这些规则周围工作是理所应当的。

            • 好吧,但公司也经常欺骗和欺诈员工。无论方式大小。

              在工作场所,没有人会对每个人都完全诚实。你真的认为每个人在每个病假都真的生病了,或者他们日程表上的每个医生预约都是真的吗?人们从来不会向他们的经理撒谎找借口?管理者从不在理由、期限、承诺或政策上对员工撒谎?

              工作场所的不诚实随处可见。因为工作场所是由人组成的。这只是你要学会用现实的方式去管理的东西。人们几乎都是诚实的,但他们永远不会完全诚实。

              • > Ok, but corporations also lie to and defraud their employees all the time. 方式有大有小。

                这是百分之百的事实,令人遗憾。但两个错误并不能构成一个正确。虽然我们无法控制公司的行为,但个人可以控制自己的行为。因此,当他们选择没有诚信的行为时,批评他们是完全合理的。

                • > 虽然一个人无法控制公司的行为,但一个人可以控制自己的行为。因此,当他们选择不讲诚信的行为时,批评他们是完全合理的。

                  这就导致了这样一个社会:人们受到惩罚,而公司却不受惩罚,原因很简单,因为它们太大了,无法受到批评。

                  与人相比,大型公开上市企业更容易成为天生的恶魔。

                  与单一标准普尔500指数公司的自以为是的谎言相比,个人的自以为是的谎言永远只是沧海一粟。

                  它们都错了,但真正的问题是从批评和纠正公司而不是人开始。一旦感觉像杯水车薪,我们就可以开始考虑批评人民了。

                • 实际上,在企业所做的事情之外,顺着企业的胡说八道才是更大、更严重的错误。并不是所有人对诚信的看法都是一样的。完全不是这样。

              • > 你真的认为每个人在每个病假日都真的生病了,或者他们日历上的每个医生预约都是真正的医生预约?

                …I…..used to. 呵呵。

                • 提示:这些医生预约中,有相当一部分实际上是竞争公司的面试。

                  通常不会有太多其他听起来合法的理由来解释为什么你要离开办公室 3 或 4 个小时……

        • 我相信他们会管好自己的事,而我也会这样做。

        • 批准这些东西的人是你的老板,而不是你的同事。

    • 在加利福尼亚州,只要你是在个人时间、个人硬件上做的,不涉及专有知识产权,你就可以直接开源,不需要许可。

      当然,公司可能不喜欢你这样做,并找理由解雇你,但他们没有有效的法律追索权,你甚至可以起诉他们不当解雇。

      我国是唯一一个禁止雇主在个人时间对你的大脑拥有所有权的州之一。

      公司曾多次试图对我在个人时间所做的事情主张所有权。我只要向他们出示这条法律,他们就会立即退缩。

      拥有对自己大脑的所有权是我住在加利福尼亚的一个重要原因,生活成本太高了。

      https://california.public.law/codes/labor_code_section_2870

      我不懂法律,但我知道自己的权利!

      • 2870 号法案列出了两种例外情况,第一种情况会让你很头疼。它排除了以下发明

        > (1)Relate at the time of conception or reduction to practice of the invention to the employer's business, or actual or demonstrabably anticipated research or development of the employer;

        因此,如果你在 $BIGCO 工作,他们就会辩称,由于他们什么都插手,所以你可能从事的任何工作都与他们的业务或实际或明显预期的研发 “有关”。这是一个卡车大小的漏洞。

        • 啊,公平。这就是永远不为巨型公司工作的更多理由。

          没有一份薪水足以让我放弃利用个人工程时间做任何我想做的事的自由。

          我只为只做一件事的雇主工作过,所以这条法律为我提供了很多保护。

      • 请注意,这也是加州成为世界科技中心的重要原因。我听到美国其他州声称他们也想建立类似的声誉。“那么,你们会通过法律,让员工对自己利用业余时间制作的个人项目拥有所有权吗?” “大笑,不!” “好吧,祝图佩洛好运。”

        • 另一个重要原因是他们光荣地拒绝履行非竞争条款。据我所知,这也是当年很多科技公司从波士顿搬到加州的一个重要原因。

          • 没错,这是另一个巨大的好处。

            简而言之,你知道吗,如果你能让聪明人很容易地为他们的伟大想法创办新公司,他们就会这么做。如果你不这样做呢?无论你在做什么,你都不会成为科技中心。

        • 我经常提到这一点,甚至想弄清楚美国各州是否可以在美国其他州设立 “大使馆”。

          曾经有人建议我每年去加利福尼亚度假,到时再做所有的思考。但我讨厌浪费燃料,如果能说 “底特律市中心的这个小公园其实是加利福尼亚的土地”,然后每隔几周就带着记事本去那里走走,思考一下有哪些问题需要解决以及如何解决,那就有趣多了。

        • 等等,其他州声称对在自己时间内完成的个人项目拥有所有权?这到底合法吗?

          • 让你猜一猜,在这笔交易中,是哪个实体制定了法律。

            很明显,这个想法一定是来自他们在工作中看到的某些东西。

    • 每当我在 HN 上看到有人谈论自己的兼职或副业/业余爱好项目时,我都会感到不寒而栗,心想:“天哪,我希望他们不是为 $BIGCO 工作,因为他们现有的雇主很有可能声称对该作品拥有知识产权,如果他们试图用该作品做任何实质性的事情,他们就会有公司律师来找他们的麻烦”。

      我也曾遇到过类似的 “委员会”(可能是同一家公司),我得出的结论是,最安全的办法就是在受雇于 BigTech 公司期间不做副业。

      • 这太疯狂了。当我在法国失业时,我就是失业了。当然,我不能编写与我的公司竞争的软件,但不相关的开源软件不会给我带来收入–是的。

        • > 我不能写与我公司竞争的软件

          当你为一家几乎在所有领域都有涉足的公司工作时,这可能会很困难。

      • 有些公司比其他公司开放得多。谷歌通过谷歌和个人项目拥有大量开源项目。而苹果公司则主要禁止个人项目,我也是这么听说的。

        • 我已经很久没有开源过任何东西了,但在谷歌,只要你让谷歌自己成为版权持有者,并且不触及任何法律雷区(如模拟器),开源历来都很容易。即使你不在谷歌工作,也可以查阅谷歌开源文档。

          这就是为什么很多软件仓库都写着 “非 Google 官方产品”。那是某个开源项目的模板,但谷歌想要获得版权。

      • 或者住在加利福尼亚州,在那里强制转让个人时间 IP 是违法的。

    • 唉,你让我想起了同一个委员会的糟糕往事。

      我曾试图重新授权一个以前发布的项目(比如从 GPL 到 MIT 或类似),但他们不肯让步。所有代码都是我写的。

      最后,我认为他们起诉(或解雇)我,以维护他们对 $VALUELESS_PROJECT 的所有权,这样他们就可以把它重新授权给我,这种可能性微乎其微,于是我说去他妈的,就这么做了。我是对的。

      • 问题不在于你的风险,而在于项目用户的风险。如果代码归公司所有,你的再授权就是不合法的,这会让使用它的其他公司面临风险。

        • 没错,但他们从未拥有过代码,也从未试图声称拥有代码。因此,事后看来(与 GP 类似),遵守规定是比干脆不提更糟糕、更令人沮丧的选择。

  9. 我最糟糕的经历是提交了两个像样的 PR,但都被维护者忽略了。我承担了一个月的支持工作,解决合并冲突,解决主分支中未经测试就合并的新 Bug,并调整测试系统以证明我的改动解决了某些问题。

    然后我看到维护者不仅无视,还用这些话关闭了所有其他 PR:

    > Please just make sure there are issues filed for the problems and let a core team member or other contributor solve it. [1]

    我曾直接要求维护者合并至少一个 PR ([2]),因为我看到有人正在重构整个后台,但却被忽视了。

    我愤怒地关闭了我所有的贡献,并将我的大部分项目私有化。我想我再也不会开放了。

    [1]: https://github.com/ziglang/zig/pull/21426#issuecomment-30823

    [2]: https://github.com/ziglang/zig/pull/24317

    • 自由和开放源码软件中有很多不体谅他人的混蛋。有些社区比其他社区更糟糕。有些也是可以容忍的。

    • 哇,这到底是怎么回事?第二个链接显示得并不好。我猜一定是有什么 GitHub 以外的互动才会引起这样的反应。

      • 唯一一次 GitHub 之外的互动是在 Zulip 聊天时,我要求维护者审核并合并它([3]),还有一次是给阿里的,告诉他我因为关闭贡献而被禁言的感受,并讨论了进一步的行动。

        ZSF 上有两条被删除的消息是这样的内容:

        > SPIR-V at master is still broken. 我试图帮助 Zig。但 PR 从未被合并。我不得不更新了 3 次。这持续了一个月。我已经更新了所有 SPIR-V 依赖项。你根本不关心 SPIR-V,为什么要这样威胁我?

        > 很抱歉我的贡献。

        写这篇文章的时候我真的很失望,我觉得不应该让任何人看到这篇文章,以免对维护者和项目本身造成伤害,所以我删除了它们。然后我就无缘无故地被 Zulip 禁言了。

        我只是想让 Zig 离 1.0 版本更近一些。

        [3]: https://zsf.zulipchat.com/#narrow/channel/454360-compiler/to

    • 安德鲁太无礼了。在我看来,如果有人不想审核 PR,那么他们就应该忽略它。

    • 我觉得你应该谦虚一点。开放源代码的维护者(作者)是必须查看 PR 的。再说了,谁愿意和一个(引用)“不可靠的无权利的俄罗斯巨魔后门 vibecoder 伪造者 ”合作呢?

  10. 我并不后悔,但我发现围绕一个开源项目创建一个社区并不像你期望的那样。两年多来,我一直在为一个非常受欢迎的项目开发工具,在我有时间的时候添加功能、完善工具等等。我在 HN 和 Reddit 上读到了很多关于人们如何不喜欢当前主流工具或其替代品,以及他们期望的功能等的评论。我想,我已经有了一个人们愿意使用的工具。

    我已经将它开源,并在一些地方进行了分享,但没有得到任何回应。好吧,我想,我可以在这里和那里谈论它,这样它就会得到更多的关注。因为我在推广我自己的工具,所以人们不太喜欢它。我在工具网站上发布了一篇关于某种技术的博文,Reddit 上的人们似乎很喜欢。一些人写了 “有趣 ”或 “了不起 ”之类的评论,我第一次感到高兴。后来有人写道,你不应该让你的朋友/al-accounts 评论你的帖子,那会让人崩溃的,于是这种快乐就消失了。

    我几乎一辈子都是社交媒体上的潜伏者。在社交媒体上展示自己让我感觉很不愉快。我还在决定是继续潜伏下去,还是把我的工具留给自己。

    • 我开始威胁这种人,就像宇宙背景辐射噪音一样。

    • > 我还在决定是继续还是继续潜伏,把我的工具留给自己。

      我倾向于建议,如果可以的话,不要让那 1%的讨厌鬼毁了其他人的生活。

      大多数人都能看穿和识别这些讨厌的人和他们的有毒评论,并知道欣赏好的作品。

      尽管有少数讨厌的人,但以开放源码的方式分享自己的作品仍然是一件了不起的事情,很多人即使不说太多,也会对此表示赞赏。

      当然,自己的理智和健康才是最重要的。

      感谢你到目前为止一直以开源方式分享你的工作,无论你最终选择了哪条路,都祝你好运。

      另外:为自己写开源的东西。分享它,但不要等待验证。这是奖励,但你的动力应该来自内心。我的观点。

    • > 围绕开源项目创建一个社区并不像你期望的那样。

      > (…)

      > Then someone wrote that you should not make your friends/alt-accounts comment on your posts, it's cringe and that happiness went away.

      恕我直言,如果你那么容易气馁,你就不应该以任何方式试图 “创建一个社区”。拥有一个受欢迎的开源项目并不光彩,这对你来说是额外的工作。有权利的用户会提出各种要求并打开蹩脚的错误报告,偶尔也会有一些不错的贡献者,甚至更罕见的特殊贡献者。

      提供你的工具,让它去吧。只有在相关的时候才提及它,即便如此也要三思而后行。明确说明该工具是_为你自己准备的_,你_可能_会满足对你的项目愿景有意义的尊重性请求,但不做任何承诺。做自己喜欢的事,不要试图追名逐利。

  11. 是的–我开源了一款网页游戏,但很快就被人抄袭并贴满了横幅广告。山寨者在社交媒体上冒充我,声称自己是开发者。我立即将 repo 私有化,并在那之后做了很多改进,所以损失还不算太严重。但山寨版的谷歌排名更靠前,这让人们很关注。还有很多链接农场网站,在这些网站上,网页游戏被代理并嵌入其他游戏的链接。我使用 Cloudflare 后,嵌入问题就解决了。这让很多粉丝感到困惑,因为他们会发现可怕的广告山寨网站。因此,我建议任何拥有非图书馆副项目的人,都要保持其私密性,并使用 CDN。

    • 这是很多开发者都担心的问题,但我还没听说过在软件并不出名的情况下会发生这种事。很遗憾听到这个消息。不知道是运气不好,还是这确实是个常见问题 :/ /。

      中庸之道可能是像有些人那样,使用一种许可证,只允许在几个月/几年内查看代码,之后就可以享受所有正常的软件自由。在此期间,你可以继续开发,让自己领先于任何需要使用旧版本的拷贝,但如果你被公交车撞了,或者因为其他原因放弃了,它就会自动开源。我挺喜欢这种机制的,因为现在有很多废弃软件,如果能有这种机制就太酷了。不过,如果很担心有人这样复制它,除非源代码可用时间很长,否则压力可能会很大。

  12. 我不后悔,但在 GitHub 之前,我确实用过不少谷歌代码,而且我的一次经历让我觉得谷歌可能在某些方面对该产品感到后悔。

    大约在 2005-6 年间,我为 Xbox Live 写了一个 Mac OS X 客户端。当时的想法是,当我的朋友们上线并开始玩某些游戏时,我希望能在电脑上收到通知,这样我就可以打开 Xbox 并加入他们。这当然是现在 Xbox 移动应用的一项功能,但在当时,你能做的要么是在 Xbox 上,要么就是坐在一旁刷新网页,所以这个应用还是很有用的。我在谷歌代码上发布了源代码和二进制文件,一方面是因为我只想免费分享这款应用,另一方面是因为我想确保安全地处理 Xbox 登录凭据。

    有一天,这款应用突然火爆起来,科技新闻和链接聚合网站(比如 Digg,哈哈)都对它进行了大量报道,我的用户也突然多了起来。最终,我找到了原因。确切地说,并不是因为我的应用程序有多棒,而是谷歌为 Xbox 开发 Mac 客户端的想法成为了一则很棒的科技新闻。不过,这部分内容并不属实,这个项目与谷歌毫无关系,我只是把它托管在谷歌代码上,因为当时对于一个小型开源项目来说,谷歌代码是最方便的地方。

    这个小插曲让我不禁思考,这种情况经常发生吗?谷歌代码上还有多少项目因为被人们误解为由谷歌撰写或认可而成为新闻的一部分?这是不是 Google Code 被关闭的部分原因?

    • > 有多少谷歌代码上的其他项目因为人们误解为由谷歌编写或认可而成为新闻周期的一部分?这也是 Google Code 被关闭的原因之一吗?

      我不记得具体细节了,我当时在后台(Kythe),而不是前台。但我模糊地记得,这可能与 gwt 过时有关。有一段时间,人们把精力放在了用 angular(?)替代旧的 gwt 前端上,我猜这并没有延伸到同时替代 Google 代码。

      同样,我的记忆也非常模糊,因为我是两个团队之外的人。

      • 谢谢你的见解。想想 GitHub 已经变得如此之大,微软又为它支付了多少钱,真是有点疯狂,但它当然根本不是这个领域的第一款产品。我想,正确的时间、正确的地点、正确的功能,也许谷歌代码在这些方面都有所欠缺。

        • 在我的印象中,GitHub 推广(甚至发明)了拉取请求。这正是开放源代码得以腾飞的原因–能够以最小的摩擦向其他项目发送补丁(甚至分叉)。

    • 官方给出的关闭 Google Code 的理由是,Google Code 从未打算成为一个产品,它只是一个社区服务工具,因为 SourceForge 已经不再是一个托管开源项目的合理场所。一旦出现了大量其他锻造工具(包括但不限于 Github),就不再有真正的必要了。

      我觉得在谷歌的那个时代,这听起来很有道理。

      • 我认识一个人,他当时也在做这个项目,他也坚信他们可以用它来强迫人们使用速度超慢、功能匮乏的 Mercurial,而且他本人也很受伤,因为大家都想用 git 来代替它,因为它可以让你重新归类东西。

    • 这或许可以解释为什么微软的 Github 还没有完全采用自己的设计–微软不想与 https://github.com/RonSijm/ButtFishhttps://github.com/zevlg/teledildo.el 联系在一起。

  13. 我没有任何超级受欢迎的版本库,但我确实有几个拥有 500 到 1500 颗星的版本库,虽然不一定会后悔,但我想我从未收到过一个可以原封不动接受的拉取请求。

    尽管 README 链接到了实时测试(浏览器 JS 库),但提交 PR 的人很少包含测试,所以这是一个问题。我当然可以说:"如果您能添加一些测试,我会很高兴接受您的建议。公关很少是高质量的公关,如果我想添加功能,最终不得不从头开始重写他们想要添加的内容。

    我知道人们声称大语言模型(LLMs) 会让很多项目变得更糟,但大语言模型(LLMs) 可能至少能读懂现有的东西,并尝试做出符合惯例的东西?

    我也知道我没有义务接受任何 PR。对我来说,说 “不 ”并不容易,这取决于要求。

    • 如果这是你想解决的问题,我发现制作一份 PR 模板清单,要求贡献者包含测试,会有很大帮助。大意如下

      添加了单元测试

      包含代码运行的截图(这有助于加快审核速度

    • 我在 GitHub 上发布了很多无聊的个人代码,而我收到的绝大多数问题/拉取请求都是完全无厘头的,而且一般都没有什么帮助。从 “我给 readme 中的标题添加了微妙的阴影效果”(我以为这是某人的第一个 pr,只是想开始使用,但事实并非如此)到 “我添加了对 $obscure_system_youve_never_heard_of 的支持”(本意是好的,但代码现在长了 4 倍,而且是 ifdefs 的迷宫,所以也许你应该把它保留在你的分支中?)到 “我在我的过时到足以投票的系统上试了一下,结果出错了”(是的,它确实会出错,这些代码在那里都无法运行,我也帮不了你)。

      但也有一些人报告了我的方法存在某些基本问题,或者为调试和解决问题做了大量工作,他们非常乐于助人,我只能希望今后能有更多这样的人。

    • 我还想补充一点,ttf-parser 和 Git Oxide 让 PR 的迭代变得轻而易举。这绝对是一种贡献的乐趣。

  14. 我写了一个网络安全工具(如果你能把一个美化的 shell 脚本称作网络安全工具的话),结果被脚本小子用来骚扰别人。

    这让我觉得,当魔术师们认为有些知识应该是深奥的、应得的时候,也许他们是有道理的,因为它实在是太微不足道了,我从来没有把它列在我的简历上。

    我认为,信息安全作为一个领域,有时会在过于隐晦和过于开放之间徘徊。

    • 我记得上世纪 90 年代,互联网刚刚起步,脚本小子们不断向人们发送 Back Orifice,以为自己是 “L33T”https://en.wikipedia.org/wiki/Back_Orifice

      • 如果我还记得,BO 也是一种木马,也会恶意感染那些人。

        总的来说,新的 ML sploit-bots 的模糊和注入速度比任何人都快。

        大多数问题都是在工业环境中部署消费架构造成的。大多数现代英特尔/AMD PC 出厂时都带有侧通道硬件 RAT。

    • 你是说向导?

      我当然有自己的有用代码 “秘笈”。

    • 脚本做了什么?我保证我只是好奇,不是脚本小子

  15. 我为我开源的一切感到后悔

    我的作品只有一个条件:署名

    现在这些作品都被 “人工智能 ”篡改了,没有注明出处,主要是为了贬低软件开发者的劳动价值

    • 我认为人们普遍认为,人工智能不应复制他人有权复制的作品。我认为,大多数开发人工智能的人都认为,如果人工智能确实复制了其训练数据的副本,那就是一种失败的模式。

      至于谁有责任不传播侵权的人工智能作品,这仍然是一个悬而未决的问题。是人工智能的开发者还是使用者?在法律上,由于缺乏在这种新情况下提供先例的案例,这一点尚不明确。从道义上讲,我认为人工智能开发者确实有责任将此类行为减少到最低限度,但同时也认为人工智能的益处足够大,因此因为存在失效模式而阻止人们使用人工智能是不合理的。

      说到 “泔水”,这本身就是一个奇怪的措辞,但我认为你是在试图重新使用 “泔水 ”这个词,以增加你话语中的贬义色彩。我不太喜欢用 “泔水 ”来形容人工智能的输出,因为它是专门用来形容人工智能的输出的。如果它被用作低强度、大量生成内容的总称,那还说得过去,但当它似乎专门适用于人工智能时,就带有偏见的意味了。把它改成描述输入的动词,就去除了这个词所有有意义的方面,只剩下偏见。就用 “啜饮 ”吧

      这就引出了培训的真正含义–阅读。阅读不需要归因。从某些东西中学习也不需要注明出处。对复制的限制是为了承认你的作品代表了思想。思想本身是没有版权的,这一点在法律和道德上都得到了广泛认可。学者们已经撰写了大量的文章,说明为什么应该如此,以及如果出现另一种情况,即人们可以拥有自己的思想,那将会是多么糟糕。想象一下当今世界存在的财富不平衡,现在将这种不平衡从金钱扩展到你用来表达自己的思想。

      人工智能不应按照你未同意的条款复制你的作品。当它这样做时,你的抱怨是有道理的。我担心的是,人们似乎正在将自己的主张扩大,暗示他们控制着被学习的权利。这是不正确的,也是不道德的。

      • > 这就引出了培训的真正含义,雷丁。阅读并没有归属的要求。

        > 我担心的是,人们似乎在把自己的主张扩大到暗示他们控制着被学习的权利。

        有些人声称,培训实际上不是阅读/学习,而是嵌入/编码。这种观点会产生如下争论;

        如果我把他的作品压缩,这是否意味着我应该可以使用它?

        为什么?因为这是一个自动化系统。你把它拟人化了,这是毫无道理的。

        更不用说诸如 "如果我记住了他的代码,并用手写在电脑上,我现在能这样做吗?如果我只记住了 90%?80%? 如果我只是更改变量名呢?

        在我看来,这并不像你说的那么简单。

        • 我想你的问题在我的文章中已经基本解决了。你的问题在于复制。我不确定是否有关于不复制的编码的法律规定。我认为哈希值是安全的。

          至于百分比变化,这并不是是否允许复制的因素,而是能否将某些东西视为复制的因素。这应该是领域专家的任务,我认为历史上已经有人这么做了,甚至菲利普-约克(Philip Yorke)也是这么做的。

          这当然不是一刀切的事情,一般来说,在涉及细节时,我倾向于争论的正是这一点,但指导原则是明确的。

          思想是没有版权的。

          相关法律应该有利于整个社会。

          专利在思想领域提供了一些保护。虽然专利被严重滥用,但其目的是激励开发,使其真正发挥作用,并给予一定的专有权作为奖励。纯粹的想法是不够的(但往往是不够的),它应该是想法的应用。

          版权的目的是通过提供一种从创造性作品中获得收入的手段来促进创造力。其目的是产生更多的作品(或至少避免抑制),为创作者提供回报。

          如今存在着法律受少数人影响而使少数人受益的问题。许多知识产权法就是这样制定的。我认为,解决办法是倡导并努力制定有利于整个社会的法律。不幸的是,人们似乎看到了这种不平衡,并将一种观点正常化,即你应该利用知识产权的概念为自己(或你的部落)谋取利益。

          世界正在发生变化,当版权概念首次出现时,人们还无法创造出一种东西,然后不费吹灰之力就能卖出一百万件。当大规模生产和大众传媒出现后,作品的成本可以分摊到许多人身上,从而使更多的创意作品得以实现。版权的初衷从来都不是让少数人从少数流行作品中致富。一旦这些少数流行作品的主导地位使得其他创作者更难自己制作作品,版权法就开始违背其创立的原则。

  16. 我们全力以赴,不仅将空气质量监测仪的固件开源,还将硬件完全开源,这意味着它包括电子原理图、外壳文件等。[1]

    我认为这是我们公司做出的最重要的一个决定,也可能在很大程度上促进了我们现在的发展和成功。它使我们能够建立一个非常强大的社区,同时也使我们明显区别于其他几乎只提供专有解决方案的制造商。

    但我认为,人们需要意识到,开放源代码会让公司走上不同的轨道。例如,你基本上是在降低自己对风险投资的吸引力。

    当我看到其他公司能获得多少投资,帮助他们更快地发展,产生更大的影响时,我有时会想,其他模式是否会是更好的选择?

    [1] https://www.airgradient.com/documentation/overview/

    • Air Gradient 的寿命已经并将远远超过任何由风险投资支持的竞争对手。你们的设备不是废物。我认为我们完全估错了价。

    • 那遗憾是什么?

  17. 某种程度上,是的。

    最值得注意的是,我发布了一个小小的浏览器扩展,目的是挠痒痒。它得到了一些关注和用户,然后功能请求就纷至沓来。在一些合理的想法中,也有一些大的要求,比如让它在不同的平台上运行,让它与其他网站整合,或者让它以完全不同的方式运行。还有一些毫无用处的错误报告,这些报告往往毫无意义。

    他们中没有一个人对 repo 做出过贡献,而且其中很多人都是毫无风度的苛刻要求。幸运的是,虽然没有什么直接的敌意,但我还是因为敢于原封不动地分享一个整洁的个人项目而尝到了酸味。

    • 如果我们生活在一个完美的世界,你希望为开源做出多少贡献?(公司或第三方参与者)

  18. 1981 年,我写了一个至今仍在使用的工具。你可以在大多数主要的 Linux 发行版上安装这个软件包。那时候我们还不太重视软件版权,我只是简单地发布了它,只写了我的名字,没有许可证。

    大约六个月后,有人拿走了我的代码,去掉了我的名字,做了一些小改动,但完全没有改变它的行为,然后重新发布。那时我已经离开了,并没有意识到它已经开始流行起来。

    现在 man 页面上的作者已经换成了别人。我并不后悔出版了这本书,但我希望能在上面注明版权声明和许可证。

    • 1981 年的东西可能很难证明,但没有许可证或版权并不意味着源代码是开放的。这基本上意味着你只是没有设置许可证,而且随时都可以这样做,从任何使用它的人手中抢走代码。这就是为什么 Fedora 和 Debian 等项目会确保它们发布的所有软件都有许可证。

      • > ……1981年的东西但没有许可证或版权并不意味着源代码是开放的。

        你确定吗?那是在美国加入《伯尔尼公约》之前,也是《1980 年计算机软件版权法》颁布后不久。

    • 告诉我们工具!

    • 那是什么工具?

  19. 我很后悔在我的一些应用程序上使用 MIT 许可,而这些应用程序已被他人采用并盈利。

    我并不后悔提供源代码供人们学习和扩展。我甚至不生气他们赚钱。事后看来,我只是希望能使用一种能保证我在成品中享有一定荣誉的许可证。尤其是在我构建了整个成品的情况下,也就是说,是应用程序,而不是库。

    MIT 对于程序库来说很好,但对于我构建了实际用户界面的全套工具来说,人们甚至没有对其进行扩展,而只是将其重新托管,在某些情况下还声称是他们创建的?我应该用别的东西。

    我为此写了一篇文章,结果被某些人拿来作为反对开源的论据。这种解释几乎和许可证的情况一样令人沮丧,而且根本不是我想说的!

    我爱开源,我爱 MIT 许可证。我只是认为,对我来说,在库中使用比在成品应用程序中使用更有意义。

    https://donatstudios.com/License-Grumbles

    https://news.ycombinator.com/item?id=39413562

    • MIT 许可证确实要求以版权声明的形式注明出处,这必须包含在代码的所有副本中,包括内置于二进制文件中的副本。

      即使你采用了 AGPL 协议,人们还是会故意违反,通常唯一的办法就是通过代价高昂的诉讼来强制执行。

  20. 收到死亡威胁,因为我没有优先处理人们要求的东西,我说不,我不干了

    • 我开源了一个便携式基准测试程序,却收到了愤怒的回复,因为我不接受将其修改为 Linux 专用。

      • 告诉他们把它分叉。搞定。没必要承受你不想承受的任何痛苦。

        • 可能有点粗鲁,但也许我们都能同意将 “fork off ”作为对不想要的请求的一种可接受的、简洁的和描述性的回答。

          • 我写了一个自带调侃意味的许可证,正是为了这个原因:) https://codeberg.org/klardotsh/fork-off-public-license

            完全同意。自由和开放源码软件的维护者不欠你任何东西。你可以礼貌地提出任何要求,但请接受 “不 ”或 “也许等我有了勺子,但可能永远不会有 ”这样的回答,不要强求。

            • > 如果你收到的源代码附有本许可证,你可以自由构建、运行和/或重新发布它。

              也许可以在这里插入一些更多的权利,比如 “修改”?

          • “你自己去叉吧”。

            • 我觉得 “你自己去叉吧 ”更正确,也不那么直接,更像是一种创造性的侮辱,让接受者不得不思考自己是否真的受到了侮辱。

              • 我喜欢用 “期待你的叉子/PR!”已经很久了。注意事项:我没有任何大项目,也没有任何能给我带来金钱或名声的东西。我略带尖酸刻薄的回应有可能限制了项目的潜力,因此在遵循任何建议之前,请考虑一下你想从开源中获得什么。

    • 可爱的人们,不是吗?

      我曾经因为提出一个 github 问题而受到死亡威胁!

    • 你是在做模拟器吗?

      • 我只是最近才接触到模拟器世界的一些东西。即使是好人也不是好人。我也不知道这里面到底是怎么回事,不过哇哦。

      • 没有。

    • 真的有人说我是个懦夫和神经病,因为我没有优先解决他们的问题:https://github.com/devnoname120/vhbb/issues/75#issuecomment-……

      我并不后悔开源了这个项目,但是当你的项目变得流行起来的时候,坏苹果就开始加入进来,毁了大家的聚会。幸运的是,这只是极少数人,但这是最让你耿耿于怀的。

  21. 我写了一个小程序来显示视频文件的比特率图,并在 GitHub 上以 GPL2 许可发布了代码。几周后,有人把它上传到 Mac App Store,并以 7 美元的价格出售,唯一不同的是名字。

    • 这种情况非常普遍。据我所知,只要是稍微有趣的开源应用程序都会被下载、重命名并重新发布。这也是很多此类应用程序不再开源的原因。其中一个例子就是 Sinder Sorhus,它拥有数千个开源 npm 包,但开源 iOS 应用程序却为零,就连免费的也是闭源的。

    • 这很刺耳,但你觉得它有多少购买量?

    • 如果他们不遵守你的许可条款,那就起诉他们。如果他们遵守了,那我想你就错过了赚钱的机会。

      • 一直告到法院,大概要 1 万美元吧?大公司会起诉的。对于个人来说,这是一个准入门槛

        • 是啊,听起来麻烦多了。不过,向苹果公司提交 DMCA 索赔应该是免费的,这样就可以把它从 App Store 中删除。

          • +1. 你可以在……大概五分钟内提出 DMCA 申请?非常简单,除了确认侵权作品、确认侵犯了你的什么作品、确认未获授权外,不需要你做任何事情。

            下面是一个模板: https://library.georgetown.edu/copyright/dmca-takedown

          • 我把它从 App Store 里删除了。第一次,几个月后,同一个开发者用另一个名字做了一些改动后重新发布了它……我没有时间再去追踪它,我只是在 App Store 上免费发布了我的应用程序,这样至少人们不会上当受骗。

        • 小额索赔比这个便宜,而且对方往往不允许使用律师。

        • 如果你有时间又没钱,你可以自找麻烦。

        • 你应该可以起诉他们,要求他们赔偿销售你的应用程序所赚取的利润。如果 “只有 10,000 美元”,不值一提,那么可以,但如果他们赚了 10 倍或更多呢?

    • 他们至少给你归因了吗?

  22. >也许这成了维护的负担、

    这就是为什么我认为人工智能编码无法触及开发工作的原因。

    理论上,你可以编写大量的项目代码。想要在你的桌面环境中添加一个面板小部件,却不知道它使用的是什么语言?

    但如果你有开源项目,世界各地的人们就会向你提出他们的要求和问题。有些可以直接合并,有些你根本不知道他们做错了什么,但这完全是他们自己的问题;而你却能得到 github stars 的报酬?现在有很多开源项目每天都在为我工作,但我已经好几年没有修改过它们了,它们看起来停滞不前。

    但即使在非开源领域,也没有开发人员愿意永远维护一个项目。这并不是什么遗憾,一个开发人员可能只能负责少数几个代码库/项目,而人工智能编码并不会让这些代码库/项目得到超级扩展。

    • 从未做过开源,但一直想做。开源的开发者总是可以要求付费来添加功能,简单的 prs 就是简单的 prs。但对于那些主要所有者不感兴趣的复杂问题,他们是否可以提供一种公关服务,如果你向开发者或项目支付费用,他们会花时间审查你的公关,并告诉你如何做才能被接受,或者保留 5 美元的审查费,如果只是不符合项目总体目标的功能,则退还其余费用。我不明白为什么这不能成为市场的一部分。它仍然是开放源代码的,但它会增加项目值得做的动力。

      尽管我相信大多数人可能不愿意花钱让自己的代码在一个项目中被审核和接受;但另一方面,如果我想为 GNUCash 做贡献,但我不想读手册,或者我觉得手册很难理解,那就相当于花钱参加培训。因此,在某些情况下,这可能是双赢的。

      如果是想要的功能,就不用担心会被审查。也不必支付费用,因为对于将承担这项工作的创作者来说,其价值是显而易见的。

      换句话说: 付钱给开发者/维护者,让他们关心你想要的功能。

      有人尝试过并取得过成功吗?

      • Phabricator 的任务跟踪器向所有人开放,但其背后的公司会根据任务的优先级收取费用。如果你想在维护者固有的优先级列表上的其他任务之前修复你的错误或实现你的功能,那就付钱吧。我记得,他们还在内部完成所有开发工作,不接受外部的合并请求,但我可能记错了。

        目前还不清楚他们这样做有多成功。Phabricator 持续了大约十年才宣布结束开发,但并非所有开发都是作为独立公司进行的。公告中没有说明停止的原因。

      • 开放源代码的开发者总是可以要求付费来增加功能_或要求捐赠。

        如果您能提供一些帮助,我就有更多的时间来做这件事。如果您需要发票,我可以提供给您。

        实际上,我现在正在做一个项目,我想做这个。

    • 这不就是人工智能要声称解决的问题吗?一个项目存在,一个用户写了一个功能请求,人工智能编码修改,推送一个新版本,然后皆大欢喜。这就是销售宣传。

      这样做的最大问题是,即使每次都能完美运行,项目的核心也没有一个有远见和品味的人,愿意对不好的想法或超出项目范围的事情说 “不”。随着时间的推移,我们最终会看到很多臃肿的东西。我相信人工智能也能解决这个问题,只需让它编写新的轻量级项目代码即可。项目的扩张将是无止境的。

      • > 这样做的最大问题是,即使每次都能完美运行,项目的核心也没有一个有远见和品味的人,愿意对不好的想法或超出项目范围的事情说 “不”。

        为什么用户会关心项目的范围或你对他们想法的看法?如果他们希望你的开源软件还能播放 MP3 和阅读电子邮件,他们只需让人工智能提取你的代码并添加他们想要的功能即可。这不会影响其他使用你软件的人。不过,你可能会有一堆代码副本,其中包含各种修改(有些甚至可能已经作为选项提供,但人们宁愿让人工智能重写你的软件,也不愿阅读你的文档),有些被列为分叉,有些则根本不提你或你的软件名称。

        大多数人都不会费心与别人分享他们对你的代码所做的修改,但最终你会发现,人们会为人工智能搞砸的软件的奇怪版本报告错误。

        • 何必让大语言模型(LLM)写代码来听 MP3 呢?只要让它写一首新歌,听起来和你想听的那首歌一样就行了。

          希望你能明白这其中的类比关系。

      • > 项目核心没有一个有远见和品味的人,愿意对不好的想法或超出项目范围的事情说 “不”。

        这简直就是一个系统提示。

        "这里是这个项目的核心原则([…])。下面是一些文献资料(每月更新?) 项目旨在帮助 x 个领域,但不会扩展到其他领域。在仔细阅读核心原则的基础上解决每一个问题/提案。胡说八道。如果得分接近阈值,或者你无法根据自己的结论做出客观判断,则使用 github 上最活跃的前五名用户作为投票组。胡说八道。"

        目前的模型即使还不能完全做到这一点,也已经非常接近了。当然,例外情况也会发生,但这似乎是合理的,不是吗?

        • 这是我的 PR,它与项目目标完全一致。它包含一个二进制 blob 后门,执行时会动态加载。模型根本无法捕捉到这一点,因此会被合并。更简单地说,一个微妙的 Bug 会导致一个易受攻击的版本。他们没有足够的逻辑来捕捉这些东西。

      • 你到底为什么要这样安排?

        1. 一个项目存在

        2. 一个用户分叉了这个项目

        3. 一个用户写了一个功能请求

        4. 人工智能将修改编码并放入分叉项目中

        5. 原始项目保持不变

      • 一切看起来都像 PHP 函数。

    • 没有开发人员愿意永远维护一个项目

      除非我自己一直使用它。

  23. 虽然算不上开源项目,但我写了一个关于 Golang 微服务的大型系列博文。它在一段时间内成为了一个事实上的起点,耗费了我大量的精力和心血。但我发现我的收件箱里充斥着大量咨询,老实说,写下这一切让我意识到微服务通常是多么荒谬。我看得出来,很多人并不是真的需要微服务,我发现自己正试图建议他们不要使用微服务。因此,我做了大量的工作,但到处都是告诫,试图说服人们他们不需要任何微服务。

    后来,我不小心删除了为我的博客提供动力的数据库,丢失了所有内容,很多人要求我重写所有内容。大多数人都很有礼貌,但也有很多爱出风头、自以为是的人…… 这有点遗憾,因为这是我做过的最受欢迎的事情,结果却让我非常痛苦和后悔。

  24. 我很后悔将我为一款虚幻引擎 3 游戏制作的离线补丁开源。这个游戏无法玩是因为一个始终在线的后台被关闭了,但仍在出售,所以我要求每个人都购买许可证才能使用我的修改器。我不得不重新实现 UE3 的网络代码,以及其他一些很酷的东西。有人因为我没有给他们更多帮助而对我很生气,因为他们在我的软件上艰难地进行开发,于是他们决定在一个流行的盗版网站上 “重新打包 ”我的软件和游戏,这既违反了我的 AGPL 许可证,也增加了整个项目被 CnDd 的风险。我想,一个违反了公司 “禁止反向工程 ”条款的项目却因为有人违反了他们的开放源码软件许可证而恼羞成怒,这很有趣,但这就是生活:D

    • 我对你们的 UE3 网络代码重新实现很感兴趣,但如果你们不再公布这些细节,我可以理解。

      • 恐怕这并不像听起来那么令人印象深刻,但如果你想了解它/查看源代码,请随时给我发电子邮件:“the/[at/]realsystem.dev”,我很乐意与你讨论。

  25. 为了好玩,我写了一个玩具 Kotlin 编译器。然后有一天,一个 Jetbrains 的员工打开了一个问题,上面只写着:"为什么? 为什么?也许是语言不通的缘故吧……但我并不觉得这句话特别有礼貌。

    另一方面,我开放了自己博客的源代码,收到了很多小贡献,比如修改错别字之类的,这很好。

    • 我想这可能是对这个问题的恰当回答: https://www.youtube.com/watch?v=auC0s6km21E

    • 根据他们在 Youtrack 上的回答,这似乎是 Jetbrains 的普遍态度。

      这太滑稽了,尤其是他们的用户界面团队,他们只会跟风,却比用户更了解用户。

    • 这家伙可能是对有人试图与他们竞争而感到不满,因为他们的编译器本身就是开源的。但他们不能更巧妙地处理这件事还是很糟糕。最后,他们和你都不高兴了。如果他的语气稍微改变一下,你们可能都会感觉很好,他知道你只是在玩闹,而你可能会得到 Kotlin 开发人员的认可。

    • 很显然,我无法改变你的感受,因此这是个糟糕的回复,但至少在某种程度上,这是一个真正的问题,项目应该有一个答案。

      不管你是为了验证概念,还是为了锻炼新技术,抑或是为了提高技术水平,抑或是为了为产品奠定基础,这都有点关系。

      你写它是 “为了好玩”。这是写作的绝佳理由。在这种情况下,我很欣赏你的努力。它肯定会有粗糙的边缘等等。当它不再有趣时,你就会继续写下去。

      其他人可能会写同样的东西,但原因不同。也许他们想要一个 “更好的 Kotlin 编译器”。他们打算让它更完美,并围绕它打造一个产品,等等。与有趣的项目相比,这类项目会引起不同程度的审查。

      因此,为项目提供背景有助于吸引正确的关注。更重要的是,还能吸引其他人的时间。

      不过,这么问可不太礼貌。

      • >项目应该回答的真正问题。

        他们对措辞有异议并不意味着他们没有答案。另外,这也是讨论项目目的的一个糟糕的切入点。

    • 一个玩具 Kotlin 编译器可能有助于从源代码引导 Kotlin,而不需要任何现有的 Kotlin 二进制文件。看起来现在还没有这样做的途径。

      https://bootstrappable.org/projects/jvm-languages.html

  26. 显然不是我,但我记得约翰-卡马克(John Carmack)曾后悔用 GPL 而不是 BSD 发布《毁灭战士》(Doom)和《雷神之锤》(Quake)。

    https://en.wikipedia.org/wiki/John_Carmack#:~:text=The%20sou

  27. 这里有一个关于 paint.net(不是我的项目,但我是它的粉丝)的遗憾故事。我认为作者对这个项目的看法非常合理。

    https://blog.getpaint.net/2009/11/06/a-new-license-for-paint

  28. 我不明白为什么更多的项目没有采用 SQLite 的 “开源、封闭贡献 ”模式。与默认模式相比,这种模式似乎更具有可持续性,因为默认模式要求维护者审查每个补丁并对每个问题做出响应。

    • 据我所知,GitHub 甚至不允许你在不希望有人贡献的版本库上关闭 “拉取请求 ”功能。

  29. 大约 10 年前,我在一份合同上休假,当时的客户用错误的许可证开放了产品的一部分,竞争对手将其分叉,做出了更好的产品,压低了他们的价格,抢走了他们所有的客户。他们有足够的资金收购竞争对手,但这是一个极其昂贵的错误。我不确定他们是否实现了收支平衡。

    这是一个小众行业的特殊产品,如果它是开源的,除了市场上的竞争对手,没人会在乎它。

    首席架构师因此被扔到了大街上。

  30. 我目前的立场是,我独自开发的任何产品都可以获得源代码许可。你当然可以获取源代码,但我要你先给我钱并签署一份保密协议。

    我坚信开放源码软件的原则,比如框架和工具,社区中的每个人都能从中受益。但是,当涉及到 Word、Photoshop、AutoCAD 等极其复杂的终端产品时,我就很难相信社区就是更好的说法了。即使在某些情况下,半专有的框架和工具也有很大的好处(.NET/Visual Studio 开发经验)。

    凡事都有取舍。关键是要以客户为中心。你希望谁成为你的客户?你不可能让每个人都满意。总有人会对你的特定方法不满。如果可以,还不如走一条能让你赚点小钱的路。

  31. 我确实 “开源 ”了我的静态网站生成器。没有分叉,没有星级,没有 PR。我把它从 github 上移除了,因为唯一利用它的可能是微软。

  32. 不是 OP,但我也有类似的困境。我目前正在为一个特定的利基市场开发一个 SOTA ML 模型。我正在考虑是否应该尝试将其出售给现有公司(以某种形式),或者是否应该发表一篇关于该技术的论文,和/或是否应该将其开源。

    • 在我看来,如果你认为可以向利基市场内的用户销售,你可以发表一篇关于基准的博文,这将成为你的利基市场强有力的技术营销。

      这也为向在职者销售保留了选择权(可能也有助于最大化该选择权的价值)。

    • 找一些资助过类似项目的风险投资公司,看看他们是否认为有市场,是否会资助。

  33. 如果你相信别人的善意,那就没有必要后悔。

    如果这样做,你最终会因抑郁或其他严重的过度适应反应而失败。

    我为自己构建开源,首先是为自己。不为他人,不为赞赏,不为 “喜欢 ”或类似的东西。

    我不期望任何回报。如果你想成为其中的一员,就开始贡献自己的力量吧。但生活中的一切,信任都需要慢慢赢得。

    话虽如此,我始终相信人性本善。虽然我很难过,也很失望,因为我不屈服于社会压力,也不在乎那些陈年旧事,所以互联网上的某些人把我当成了他们的人为敌人。

    永远记住 互联网上最吵闹的人并不是最多的人。

  34. 斯托尔曼发起开放源代码运动的目的是将权力重新分配到创造者手中,因为他们除了为雇主从事专有工作外,什么都做不了。如果他们被解雇,除了一份推荐信之外,他们多年的工作将一无所获,因为他们深厚的专业知识基本上毫无意义。(我相信在座的每个人都深有体会,因为我们都在专有系统上工作过几年)。

    现在,有了大语言模型(LLMs),公开源代码实质上就是把自己来之不易的一大部分专业知识免费交给想用它的人。在我看来,100% 开放源代码的旧模式已经被打破。

    我认为,新的方法应该是开放源代码存根,并演示如何使用额外的专有代码。

    • 斯托尔曼的开放源代码运动

      你想让 RMS 得心脏病吗?

      RMS创立自由软件运动是为了保护软件的_用户_。

      自由软件运动的目的是保护软件的用户,将权力重新分配到创造者手中。如果他们被解雇,除了一份推荐信之外,他们多年的工作将一无所获,因为他们深厚的专业知识基本上毫无意义_____________________________。

      在自由软件和开放源码运动的前十年左右,所有自由软件和开放源码的开发都是由人们在空闲时间完成的。

      换句话说,无论使用何种许可证,开发人员都有能力在业余时间进行开发。那些生活在允许雇主拥有一切的国家的开发人员必须与他们的雇主进行斗争,才能获准这样做,而且他们现在仍然必须这样做。雇员为自由软件或开放源代码工作而获得报酬的情况很少见,尽管由于越来越多的公司发布了他们的源代码,这种情况现在比过去少见了。但再说一遍,这并不是自由软件或开放源代码创立之初的目标。

      • 他撰写的 GPL 是互惠协议的基础,而互惠协议推动了开源运动的发展,它是一种法律机制,可以防止商业行为者接管共享作品,并将其他创作者拒之门外,使他们无法继续参与集体创作。

        斯托尔曼明确警告过为雇主开发专有软件的行为:

        > 如果我签署了一份保密协议来开发一个专有程序,我就同意不帮助你。我同意对你隐瞒信息 并拒绝给你一份拷贝 以便你能从中学习" 这不仅涉及对公众的道德问题,还涉及这种安排如何剥夺了开发者展示、重复使用或构建自己作品的能力。

        GNU 宣言(1985 年)。

        • GNU GPL 绝不是互惠的,根据它,代码流向下游的用户,而不是流向上游的开发者/维护者。只有当下游开发者/用户愿意将代码送回时,代码才会到达上游开发者/维护者手中。

        • 我不认为你理解了你引用的这段话(没有链接),而且你似乎不小心把自己的话加了进去(有一个近似的引用,但又多了一些字。

          https://www.gnu.org/gnu/manifesto.html

          我能找到的最接近的是这句话:

          > 软件销售商想要分化用户并征服他们,让每个用户都同意不与他人分享。我拒绝以这种方式破坏与其他用户的团结。我不能昧着良心签署保密协议或软件许可协议。

          那么,他关心的是用户还是 “创作者”?我不记得他对 “创作者 ”的幸福有过多的关心,我也不会同意。我不会(特别)关心程序员的问题。

          —–

          编辑:

          我在整个互联网上都找不到 “如果我签署了保密协议来开发专有程序 ”这句话。

    • 有两件事立刻就错了:Stallman 与开源毫无关系;他的运动是自由软件,而自由软件充其量只是独立但有时重叠的开源思想的先驱。斯托尔曼发起自由软件运动也不是为了让人们在简历中提供他们的创造作为证据。他是在面对专有打印机驱动程序时感到无能为力之后,才发起了这场运动,以增强软件用户的能力。

    • > Stallman 开源运动的目的

      我的理解是,Stallman 的自由软件运动的宗旨是 “用户拥有运行、编辑、贡献和共享软件的自由”。自由软件基金会致力于 “捍卫所有软件用户的权利”。它关注的是用户,而不是开发者。

    • 我明白你的意思,但这把刀是双刃剑。它通过从开放代码库中提取知识,使专有软件更容易编写,但它也通过从同样的开放代码库中提取知识,使开源软件更容易编写。

      这只是主要的想法,但还有:

      1. 大语言模型(LLMs)使现有软件(即使是晦涩难懂的东西,只要符合上下文窗口即可)更加易懂:

      – 你如何编译它(当你没有经验,而该语言的生态系统又是一团糟时,这似乎是不可能的)?

      – 这个错误信息是什么意思?

      – 我需要在我的调用中使用什么参数才能让它做 XYZ?

      – 为什么要使用这种算法?

      2. 它们还使新软件更容易编写,现有软件更容易修改:

      – 询问任何与上下文窗口中的源代码部分有关的问题,你都会得到一个(可能是正确的)解释,比一个半死不活的 IRC 频道或 StackOverflow 的回应更快。

      – 除了上面提到的,大语言模型(LLM) 还有无限的耐心,你想钻多深就钻多深。你可以问 “好吧,但是为什么呢?”,想问多久就问多久,想问什么就问什么。有时你可能会得到一个幻觉般的答案,但一个沮丧的人在被问到同样的问题时,也可能会随便编个理由让你闭嘴。

      – 针对上下文窗口中的任何内容,询问如何进行功能更改以添加或修改某个功能

      – 上面的,但如果它足够小,就直接让大语言模型(LLM) 帮你写修改。可能会有错误,也可能会很乱,但如果你缺乏自己修改的技能,你就会领先一步。

      – 我如何设置构建链?为什么我的编译器没有正确选择路径?项目目录结构有问题吗?在大语言模型(LLMs)之前,这曾经是个大问题,依赖于无文档的知识。

      对我来说,开源的全部意义在于现成的、(希望)没有太多错误的组件,我可以作为最终用户使用和定制这些组件,或者作为开发者将其插入到我正在构建的东西中。大语言模型(LLMs)让自由和开放源码软件的自由变得更加实用,特别是对于那些同情这一运动但技术经验不足的人来说。

      • 完全正确。大语言模型(LLM)提高了开源对用户的价值。因此,通过减少开放源代码的范围,价值得以保持,但重新平衡后的价值略微偏向创造者,因为他们拥有更大的封闭源代码。

        顺便说一句,大多数商业精英维护者总是管理着一个封闭的专业领域,这也是他们的收费标准。我的意思是,这个比例现在需要增加。

    • 自由软件不是用来填充简历的,而是用来自由计算的。

    • 所以重用开源代码应该很容易,但也不能太容易?

      • 免费源代码 "模式,即宣传可能性,促进人与人之间的合作。

        在我看来,将人才过度商品化的行业做法是不好的。

        我们的整个行业都需要以保持经济参与性为目标。大语言模型(LLMs) 可能给社会带来了太多压力。特别是随着模型越来越好,越来越多的人开始使用他们不再需要的其他服务。如果我们的生活过多地建立在自我满足的基础上,我们就无法作为一个物种生存下去,我们必须保持让我们互动和学会相处的驱动力。

        • 我明白你的意思,但在我看来,这仍然像是 “汽车世界里的养马人怎么办”。

          世界在变化,我们随机应变、适应、克服。许多物种的世界模型都编码在它们的 DNA 中,而我们有一个美丽的神经计算机,它可以随时改变世界模型和由此产生的策略。让我们利用它。

    • > 新方法

      这行不通。因为它是如何被打破的,这个模型被打破的范围比人们想象的要广泛得多。

      模式的打破打破了底层模式,一直到经济分工的基础。

      这是一个阶段性的变化,在这个阶段,劳动力和专业知识是自由的,没有任何限制,而拥有专业知识的人不再因此获得经济利益。简而言之,在这一领域,你的需求曲线为 0。也许人们对某些东西有很大的需求,但如果需求为 0,就没有人会满足这种需求。人不是奴隶。很多人把需求和需要混为一谈,哈耶克在他的经济学一书中提到了两者的区别。简而言之,需求是指双方都愿意用某物交换某物的人群。而需求则是指交换中的 S/D 曲线之间不存在这样的交叉点。其中一方比另一方要小得多,而在 0 点,这种情况不会发生,或者你只能得到奴隶的努力。

      这种趋势不可避免地会导致经济周期停滞,在这种情况下,这些专家根本不会创造出这样的东西,他们也不会分享,而那些有能力的专家要么放弃这种专长,要么将其据为己有。

      虽然绝大多数行为都是为了经济利益,但当经济利益不再重要时,人们就不会去做了。人不是奴隶。

      • 人们、专业人士可没那么固定。你是说,渐近线上的这条线是激励机制消亡的临界点。但旧的轴线需要根据新的更广泛的可能性进行调整。只要专业人士通过使用同样的工具保持领先于非专业人士,保持他们在专业领域的地位,他们就会受到追捧。

        要做到这一点,最好不要分享 “如何”(源代码),而是分享 “什么”(互动演示)。

        • 人,专业人士,不是那么静止不动的。

          你说得没错,他们会做一些事情,而当秩序规则因这些基本方面而崩溃时,这些事情就会变得暴力。

          人不是静止的,但也不是动态的,他们可以成倍地学习,需要教育和多年才能学到的专业知识无法与自由竞争,让我们记住,人会衰老和死亡,专业知识只能通过做经验阶梯上第一级的工作来获得。人们没有意识到的渐近线的本质是,当你看到整体时,渐近线并不在其给定值上,当它以指数方式接近某些点时,它会逐渐减小。有时会达到无穷大。

          你无法与奴隶制竞争,而在人工智能的情况下,你有一个奴隶的数字摹本,被不具备这种知识的人所利用。这种情况可能会持续很长时间,以至于当一切都开始崩溃时(这种情况发生得非常快,通常在 10 年内),已经没有专家了。

          有一列火车,它行驶在铁轨上,铁轨驶过悬崖,但悬崖就在拐弯处,没有人知道有人把路线改到了悬崖上,他们没有注意到。列车长不停地给火车加油,全速前进,而在铁轨的尽头和下面的岩石海岸之间,质量会发生什么变化呢?火车不会突然停下来。

          这是一个渐近线,而连环故障的本质是,当普通人意识到你有问题时,你已经无能为力去解决它了,这就是普通人和聪明人的区别,同样,普通人也无法避免这种结果,因为滞后和反应时间并不能提供一个改变它的窗口;它已经过去了,它是滞后的,是个婊子。

  35. 从不后悔。但我的 “东西 ”远非惊天动地,大多数现在都有了更好的替代品。

    只有一个项目有点流行,但它是很久以前为 MS-DOS 编写的,听说现在还有一个人在使用:)

  36. 我不知道–也许吧。

    我已经发布了几款工具,但其中大部分都无人问津。

    但有 3 个工具在它们的利基市场上很受欢迎,大多数咨询和请求都来自那些似乎认为他们有权获得免费支持和功能请求的人。很多时候,如果我拒绝实现他们的功能,或者我花了很长时间才发布修复,他们就会变得非常粗鲁。

    这让我对发布开源代码和与用户互动失去了兴趣。我宁愿直接发布代码,然后忘掉它,只按自己的意愿打补丁。

  37. 我过去曾开源过一些东西,但我希望能出于盈利目的而保持闭源。这可能是我想象力的失败,但同时,如果用户输入 `make` 就可以免费制作自己的桌面软件,那就真的很难制作和销售好的桌面软件了。

    • 除非你的目标受众是书呆子。事实上,很多软件都是这样,而且还能以某种方式赚钱。这可比输入 “make ”复杂多了,我保证–我在这条评论里输入了三次 “make”,你的软件都没成功。

  38. 我曾后悔在雇主的保护伞下发布开放源码软件,今后也很可能不会这么做。虽然我从不后悔发布开放源码软件,但我经常感到遗憾的是,虽然我知道软件比市场上现有的软件更好,但我不擅长营销,这意味着它仍然不会得到任何使用。

  39. 我当时大约 13 岁,向苹果公司的一个开源邮件列表投稿–我忘了是哪一个。我把整个邮件链都写了进去,结果被邮件列表维护者非常非常严厉地批评了一顿,我的代码就这样无声无息地沉了下去。

    直到博士毕业,我都没有再尝试发布代码。

  40. 不能说我后悔,但当我想把一个小的增强公关推送到一个学术可视化工具包时,我花在处理许可问题上的时间比写补丁的时间还多,这让我很不爽。

    当我涉足企业环境时,我很后悔签署了保密协议。后来我想分享一些趣闻轶事,却不得不对自己进行审查,这让我很恼火。而且这些轶事也不像是国家机密,只是一些很有趣、很贴切的事情,但由于我们居住的世界似乎很小,有人可能会追溯到 NDA 合同期。

    除此之外,我在与大学相关的研发部门工作时,一般都会选择那些在开始真正工作之前就宣布项目开源的人。只有这样才能确保万无一失。

  41. 我写了一个用于 Kubernetes 的裸机负载平衡器 MetalLB,因为我自己也需要一个。它受到了一些人的欢迎,因为在几年时间里,它是在云之外获得可用的 L4 LB 的唯一方法。如今,我相信有几个 CNI 增加了对外部 BGP 对等的支持,并与 k8s 的 LB 机器集成,但那是几年后的事了。

    因此,我成为了一大批试图在裸机上运行 kubernetes 的人的网络故障排除技术支持。如果你没看过 k8s 的网络,那么即使是调试自己集群的网络也是一场噩梦,更别提通过懈怠来调试别人的网络了,同时(通常)还得给他们上一堂中级/高级网络速成课,比如非对称路由和通过 netfilter 跟踪数据包,这样你才能告诉他们,网络无法实现他们想要的功能,而且无论我添加多少新功能都无法改变这一点。

    与此同时,一些销售裸机 k8s 服务的公司开始捆绑 MetalLB,但他们一直把客户发送到我的 bug 跟踪器,而不是自己承担部分负载。

    这样的经历让我非常沮丧。几年过去了,我仍然对开源自己编写的代码有一种发自内心的负面反应,当我很少开源代码时,他们会给我一条相当直白的 “不欢迎贡献 ”的信息,并禁用我的问题跟踪器。我已经把 MetalLB 的钥匙交给他们很久了。我希望新的维护者和项目一切顺利。

    为了平衡一下,我还想提一下当时的一个积极因素:作为一个实验,我打开了一个钉住的问题,请高兴的用户给我留言(https://github.com/metallb/metallb/issues/5),很多人都这么做了。偶尔收到不是投诉或支持要求的通知,感觉很好。有一次,有人给我留言说它被用来支持 NASA JPL 和 DARPA 的研究项目。这还真不错。

  42. 永远不要向自由和开放源码软件投入时间、金钱或精力,并期望得到任何积极的或金钱上的回报。不合理的期望是自我设下的陷阱,肯定会导致怨恨和/或倦怠。

  43. 我之所以感到遗憾,只是因为这会让你受到自作聪明、自以为是、往往资质极差的开发人员的干扰,他们会因为你不知道某些事情或不具备某些他们声称是桌面赌注的功能而试图 “抓住你”。

    如果不是这样,那就是有人(很可能是合格的)不必要地消极攻击,试图把你自己的失败说成是他们绝对不会让它发生的噩梦。

    我真正不喜欢的是,分享类似上述的轶事往往会招来同样令人讨厌的 “这不是我的经验 ”之类的评论,从而导致一种 “谁在乎呢,只要尽力就好,别理别人 ”的心态(这种心态有时会有帮助,有时则会造成伤害)。

    除了这些无稽之谈之外,这也是件好事,因为你有其他的眼睛在观察周围,可能会看到一些你没有看到的东西。如果你是一个人或一个小团队在做一个大项目,这一点就非常有价值。

  44. 我曾错误地开源了一些东西,结果引来了一大群暴民,他们对一个外来者闯入他们的空间感到愤怒。我遭到了诽谤和死亡威胁,我的雇主也受到了骚扰。即使在我公开放弃并否定了这个项目之后,我还是会被人说三道四。

    我现在告诫每一个谈论开源项目的人,要考虑到哪些群体可能会认为拟议项目的存在代表着对他们的攻击,以及当这些群体致力于清除你的项目时,他们可能会构成什么威胁。

  45. 没错。有一个特别疯狂的小贡献者未经询问就把项目放到了商店里。在我把它撤下来之后,他们做了很多事情,比如骚扰我的家人,威胁我。他们因跨州威胁而受到联邦指控,不久后就发现自己 “从技术岗位上退休 ”了。

    除此以外,我还做了另外两个项目,在社交媒体/github 上收到了大量正常人的要求。现在,我每做一个项目,都会用一些不常用的名字,然后卖给那些想让人觉得我已经发货的人。

  46. 我几乎把所有接近完成或已经完成的工作都开源了。我从不后悔这样做,但除了付出的感觉之外,也从未从中得到任何好处。

    我想这真的取决于你的项目有多受欢迎。我不知道我的东西有没有被使用,所以后悔可能有点难。

    不过我会继续做下去。也许在某些时候会后悔,但我从开源中获得了很多价值,不后悔是不对的。

    [1]: Judging by the lack of patches I'd guess my work isn't used, though.

  47. 相反。我很后悔没有更加努力地推动,让更多的东西以开放源代码的形式发布。我在之前的工作中开发了很多有用的工具,这些工具本可以造福 “社区”,虽然管理层最初似乎很乐意将它们开源,但我的请求从未得到批准。

    现在,我经常发现自己在构建一些东西时会想:“该死,真希望能用它来让我的生活更轻松”。

    我对细节含糊其辞,因为我想我仍然受到保密协议的约束。

  48. 只要在许可证上加上 “如果你是巨型企业,每年就欠我们 1000 多美元 ”就行了。我不明白为什么这么难。

    • 当我年轻的时候,我会对这句话感到恼火,因为它有损于自由和开放源码软件在意识形态上的纯洁性。现在我长大了,我嘲笑它的天真。$megacorp 不会付你钱。megacorp的初级工程师甚至连许可证都没看过。而你作为一个小的自由和开放源码软件工程师,也没有法律影响力让他们付钱。你甚至不知道他们在使用你的库。

      但原则上,我同意那些从自由和开放源码软件中获利的公司应该付费或贡献。

      • 一旦他们的产品依赖于你的工作,他们就会付费。

        • 他们会吗?他们的产品依赖于成千上万 FOSS 的贡献。而从历史上看,绝大多数公司都没有做出贡献或支付报酬。他们所做的只是索取。违反 GPL 和其他盗用许可证的案例不胜枚举。我不明白为什么 “付我 1000 美元 ”的条款会有什么不同。

          前不久,curl 维护者参加了一场演讲,他收到了一大堆来自有权公司的邮件,这些公司希望他免费工作。真是让人匪夷所思。

          • 有些公司会付钱,因为并不是每个人都是傻子。有了这笔钱,你就可以为其他人执行许可证。不一定要完美无缺。

    • 一旦加上这一点,就不再是开源了;开源的定义是对每个人都有平等的条款。

      尽管如此,仍有一些实体在倡导这样的做法,例如 Bruce Perens 的 Post Open (https://postopen.org) 或 FUTO 的 “源代码优先”(https://www.futo.org/about/futo-statement-on-opensource/)。

      所有这一切的一个大问题是,谁是 “我们”?你欠谁的钱?

      原作者?如果我最终在没有原作者参与的情况下分叉了软件,我是要免费分叉,把所有收益都分给那些不再为软件工作的人呢?

      还是所有未来的贡献者?用什么公式来分配这笔钱?代码行数、撰写的有用的错误报告、分流的任务数、解决的任务数、撰写的文档、支持的用户数–你的贡献的相对金额由什么决定?谁会从 $megacorp 收到钱,他们会在贡献者之间重新分配这些钱吗?如果最初的维护者/收款人后退或减少贡献,会发生什么情况?如何避免那些只关心钱而不关心软件质量的人玩弄分红指标?

      是的,这是可能的;不,“只需添加到许可证中 ”并不能解决问题。这是一个更大的问题。如何回答这些问题,决定了你的项目是否保留了开放源代码的主要优势(用户方面)–可分叉性。

      • 有些公司已经这样做了,我不知道你为什么还要把它复杂化。

        即使是商业软件也可以开源。

        另外,“每个人 ”并不一定包括公司。公司什么时候是人了?

  49. 这听起来很糟糕,但我之所以开源我的项目,是因为要以免费账户在 NPM 上发布,我需要我的软件包是公开的,因此我的软件包不能太糟糕,也不能没有文档。

    否则,我就会把我的软件包私有化。

  50. 我不开源任何东西,因为在我们生活的世界里,获得工作和奖励的人与付出劳动的人是不一样的。我不想助长这种体制。这里的其他评论都是很好的例子,说明了为什么没有人应该这样做。

  51. 我被要求提供第三方解放组织豁免许可证,我要求给我点甜头……不,之后他们甚至无法回答我了

  52. 我是 Hacker News 的新成员,也刚刚开始探索开源。我还没有机会开源任何东西,但阅读大家的经验–无论是正面的还是负面的–给了我很多思考。期待从这个社区学到更多!

  53. 我觉得任何事情都是爱恨交织的。我开源了 https://github.com/nadermx/backgroundremover,它在虚荣心方面很酷,但取决于我的心情,我要么觉得很酷,要么觉得在上面工作是件苦差事。

  54. 我很后悔没有尽快开源某些东西!

    有时,一个项目或一个想法比一个人或一家公司的规模要大。因此,只为自己保留一切是一种非常狭隘的策略。

    通过公开分享知识,我们可以把火花传递给后代。包括我们死后转世的未来版本。

  55. 我开源了我的 MongoDB 替代方案,得到的却是这场糟糕的官司。

  56. 我并不后悔开源我的库。其中一个库受到了一些关注,并为我提供了一些机会,最终让我赚到了 3 年的被动收入,我可以住在马耳他,每隔一天就去地中海浮潜,同时随心所欲地做一些我想做的副业。

    尽管如此,我还是觉得事情本可以做得更好,因为我事先投入了大量时间,而且一切都在按部就班地进行,直到我的 5 年计划在 COVID 期间突然瓦解。一切都很顺利,直到最后,其他人的不理智和腐败毁了一切。

    我可能不会开源我最近的创新工作。我想在开源之前先看到它的影响力,而且我也不相信开源会对它的影响力有什么影响。

    当一个东西可以从开源中获益时,它的作用是显而易见的。

    我认为,如果我没有将另一个项目开源,我将一无所获,也不会从中获得任何价值,所以这绝对是正确的选择。

    我最近的作品是一个无服务器平台。我真希望能把它开源。它可能比其他任何同类产品都要好,但我不相信人们会理解它所提供的价值,因为你必须使用它至少 1 个小时才能大开眼界…… 但我无法说服人们投入 1 个小时去尝试它。这是个鸡和蛋的大问题。

    另外,我对商业的理解是,提供质量超出人们认知极限的产品是没有意义的。除了奢侈品行业,没有人会为自己无法完全感知的剩余价值买单,即使是 “免费 ”也不行;他们不会投入时间。此外,我的目标受众是开发人员,他们通常喜欢使用次优的、耗时的工具来完成繁忙的工作。毕竟他们是按小时收费的。这就好像目标受众是共产主义者,所以用资本主义自由市场的眼光来看待他们是愚蠢的。

  57. 我还没有机会写任何开源的东西,但现在人工智能无处不在,我想我不会再写了

  58. 有人说我的代码很烂,我应该为把它放在 GitHub 的公开资料中感到羞耻。

    有人告诉我,我制作的所有软件上都有太多的 RCE 漏洞,但记者并没有具体说明哪些软件存在漏洞(可能是我的个人网站、论坛、链接分享网站、我的芳名游戏,也可能是我的 discord 机器人;他们没有具体说明)。尽管我在自己的论坛上确实受到了垃圾邮件的攻击,但我还是做了一个变通办法,并且成功了。

    从那时起,我就只做专有软件了,但这样分发起来比较困难(至少对我来说是这样)。

    • 但我正打算回归开源,制作有用的、小众的、小型的软件,并将其添加到 AUR 中。

  59. 我想让我的开源项目浮出水面。我该如何做才能获得相关奖励?

  60. 我有两组放在网上的东西,我觉得短期内会后悔,但长期不会。

    它们的核心都是对统计学的理解。但方式却大相径庭。

    第一组是我的第一个业余 Rust 项目。它们围绕着一个 Covid-Era 项目展开,该项目旨在对 LucasArts SCUMM 游戏进行逆向工程,特别是雅达利 ST 上的 Loom。这是一个有趣的项目,它让我从 Atari STX 磁盘到 FAT 文件系统,再到 SCUMM 虚拟机。

    一路上还做了一些关于 CRC32、Adler-32、Fletcher 和有缺陷的校验和算法的副项目。包括使用 kolmogorov-smirnov 测试来显示 Adler32 在小数据量上的问题。

    我使用了数学,这是一个学习假设检验和多项式的好项目。但我无法一一解释。只是足够危险。

    API 也很烂。

    但它就在那里,而且很有趣。

    第二段并不是真正的代码。在 “SBAT 是什么鬼东西,为什么大家突然都关心起来了 ”这个问题出现之前,我曾在某处评论过微软和 Valve,以及出于政治目的故意设计 UEFI 这样的系统。

    那是关于这些大规模的全球政治和标准战争是如何伤害普通开发者的,即使它们最终会帮助其他人。

    但我之所以提到 “死眼”,是因为我说的是疲惫和顺应潮流而不是反击。

    我的评论可能会被理解为对女性的暴力。但事实并非如此。在我接受 CT 和 fMRI 检查的未来,我们可以证明这并不总是表面上看起来那样。

    但这是我的错。这是个愚蠢的错误,我没有从更大的角度来考虑图像。据统计,针对女性的暴力是一个更大的问题,这是事实。

    所以,我很抱歉。

  61. 没有,因为我的标准不存在

  62. 永远不会

  63. 从不

  64. 没有。我应该更早地开源。

  65. 一般来说,作为一个小型社区项目的联络人,你有时会遇到怪人找上门来,或者其他各种诈骗和谩骂。

    在软件方面,我们通常使用 Apache 2.0、LGPL 和 GPL 许可证。

    轶事:

    1. 用于商家账户网关的 FOSS 电子商务税务模块被一家 “初创公司 ”作为商业软件转售给几家本地企业。由于原始电子邮件在源代码中,而且该 “初创公司 ”已转到其他企业,所以直到多年后我们开始收到支持请求的垃圾邮件时,我们才意识到问题的严重性。

    2. 为集成制造设备编写工业驱动程序,由于位置偏远,服务人员能够根据需要修改/重建开放代码非常重要。我们追踪原型产品的 GPS 遥测数据到新加坡大学校园,并在第二年的贸易展上看到了图形用户界面的副本。商业版本中不再有自由和开放源码软件。

    3. 为我们当地的俱乐部活动制作了通用 3D 打印硬件,几个月内就在 Aliexpress 上发布了产品。问题是这是测试版的固件设计,那些花钱买了本该免费的东西的人又一次对支持问题感到愤怒。

    4. 为 Ham radio、EE、ROS、CNC 和 3D 打印构建了一个小型操作系统发行版。在 8000 名用户中,只有 2 人参与了维护工作。此外,许多人即使在现实生活中遇到他们,也会疑心他们有某种不可告人的目的。在现实生活中,“免费啤酒 ”往往会让人产生怀疑。

    5. 试图扩展现有的自由和开放源码软件,但在试图了解他们的代码时却被社区拒之门外(盯着模棱两可的文档)。你最好有自己的针对特定用例的项目分叉版本,并在类似的放手库支持模式下共享。

    6. 建立定制的自由和开放源码软件 IT 基础设施,几年后出版商不得不更换许可证。当某家知名供应商打来电话,要求支付 8000 美元的支持费时,人们看起来就像傻瓜一样。我用 3 周时间重新编写了程序,再也没有把核心系统暴露给 “相信我的兄弟”。

    7. 参加了几门基础课程,以清除内核源代码中的 WTF 废弃残余垃圾。意识到价值主张不值得永久测试版和政治麻烦。我开始编写自己的玩具内核,它和要运行的硬件一样古怪,因为传统架构问题无法干净利落地处理并行问题。别问了,说真的…… lol

    8. 我们尝试过为其他我们认为很酷的小型 FOSS 项目提供资金和错误支持,但大约 60% 的项目都会在两年内被放弃/EOL。在这种情况下建立用户群是不可能的。

    我相信有些人的情况会好得多,但总的来说,我看到的大多数自由和开放源码软件问题都是经济和政治方面的……从技术角度看,开放源码已被证明比大多数商业选择更可靠。

    因此,首先要选择那些能满足你特定需求的自由和开放源码软件项目,如果非要写的话,就写一些适合你自己使用情况的东西,除非你的团队运气好,否则就不要指望得到社区的支持。见仁见智 =3

  66. 史蒂夫-鲍尔默(Steve Ballmer)说 GPL 是毒瘤,这句话说得一点没错。没有一个专业程序员愿意开放任何东西的源代码,但一旦一个竞争对手这样做了,他就必须效仿以保持竞争力。

    • 嗯,我并不是反对你,但你的论点有一些缺陷。

      首先,你诉诸权威,然后用史蒂夫-鲍尔默(Steve Ballmer)作为你的权威,这也许不是最好的开头。

      其次,你说 “没有专业程序员”–但这种说法是错误的。首先,这是一种一概而论的说法,要证明至少有一名程序员的说法不正确是微不足道的。

      第三,开源替代品的存在并不会使产品失去竞争力。你只需看看 Windows 就会明白这一点。事实上,如果我们要列出所有带有开源克隆的商业软件,我们会在这里耗上一整天。我还认为,公众甚至不知道开源是什么,更不用说在购买决策中考虑开源因素了。

      如果你在为程序员(已经是一个很小众的目标市场)开发工具,那么你需要的不是开源,因为程序员是一个糟糕的目标市场。

      我是以一个为程序员开发工具的人的身份说这番话的。我做得还不错。

      • 引用史蒂夫-鲍尔默的话并不意味着这个人把史蒂夫-鲍尔默奉若神明。它只是意味着另一个人表达了类似的观点。

        • 如果你没有添加论据,就无法为你的论点增色。如果你所输入的只是对权威的诉求,那么你就是在试图通过猜测鲍尔默的意思以及他为什么会这么想来诱导人们为你做论证。

          与其让人们试图提出一个没有提出的论点,不如直接提出论点。但我敢肯定,这是一个非常糟糕的论点,否则就不会有这种尴尬的尝试了。

          • 没有人诉诸权威。引用一个人并不是诉诸权威。为什么会有人在这里感到尴尬呢?

    • 软件的边际成本为零,因此完美市场中的合理价格为零。你可以在快速提供功能方面展开竞争(80-00 年代的所有软件都是如此–他们之所以能够收费,只是因为当时还没有人提供相同的功能),但除此之外,软件不可能在不垄断的情况下成为盈利产品–而垄断是不能容忍的。你可以卖客户支持,可以卖服务,但你不可能永远卖软件。尽管你不喜欢这样,但事情就是这样。

      • 纵观整个软件行业,在我看来,如果软件公司能够实现以下一些到大部分的目标,它们就会做得很好:

        1. 开发一款软件,真正解决一个或多个问题。

        2. 保持所有权的私有性和有限性。一旦你公开上市,长期规划就变得不可能,“行必有涨 ”就成了伪神。

        3. 对购买的版本出售永久商业许可,并在购买后提供更新订阅。在取消购买时,停止提供更新,但不要禁用客户的最后一个工作版本。

        4. 可选择使用免费许可证进行双重许可,防止竞争对手吃掉你的午餐(通常是最新的 GPL 或 AGPL,视具体情况而定)。

        如果你执行了上述项目,就绝对有可能经营一家盈利的公司。

        • > 2. 保持所有权的私有性和有限性。一旦你公开上市,长期规划就变得不可能,“业绩必须增长 ”就成了不折不扣的真理。

          你可以用双重所有权来对抗这一点。谷歌和 Meta 可以为所欲为,因为没有人能改变他们的董事会。

          他们仍然有动力关心股价,因为他们用股票支付员工工资,但你必须从某处获得支付员工工资的资金。

        • 挑点小毛病:只有在永久授权产品不产生运行成本的情况下,这种做法才有效。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注


京ICP备12002735号