自己辛辛苦苦开发的开源软件,被别人用了,还被隐去了各种关于原作者的信息,这种违反开源协议与精神的做法,无疑令人恼火。
这也是为什么自昨晚以来,拥有千万级粉丝的数码博主“老师好我叫何同学”成为众矢之的原因。此前,“老师好我叫何同学”曾凭借发布各种数码科技类视频收获了广泛好评,他也曾因与苹果 CEO 库克 1 对 1 对话而令人惊羡。不过近日,他在 B 上更新了一个《我用 36 万行备忘录做了个动画...》的视频,却因触及开源项目的版权问题,引发巨大争议。
“我写了一个软件” vs“改写开源软件 ”
具体事情的起因是何同学称自己四年前,曾手动在备忘录里敲了一万行字符,试图讲述一个简单的故事:先是让一个白条躲避红色障碍,最后变成小猫反追红色障碍的故事。
然而,这个动画尝试由于备忘录从上向下的滑动特性限制,未能实现理想效果。红色障碍出现在屏幕中的时间极短,难以看清,更谈不上丰富多彩的表现形式。为了改善这一缺陷,何同学设想在前方添加一个手机屏幕,专门用于发射红色障碍,从而增强“白条”的挑战强度。然而,仅靠自己手动输入,一万行已是极限,做不了丰富的花样,也无法继续下去。
四年后,为了弥补当年的遗憾,何同学决定升级这个“备忘录动画”,使用多个屏幕来增加这个动画的效果。然而,屏幕变多了,仅凭手动输入字符也必然不现实,因此,他转向了技术化的解决方案。
问题点因此出现了,起初,何同学在视频中表示,“所以我们专门写了一个软件,可以把预览动画里面的色块转换成字符,提高效率,但为了最自然的效果,前面白条,躲避障碍的动画,依然是一行一行画的。最后这个文档有 36 万行。”
(来源:https://weibo.com/6529876887)
然而有细心的网友发现,视频中一闪而过的软件并非是何同学开发,而是使用了 GitHub 上的一个名为“ASCII generator”的开源项目(https://github.com/vietnh1009/ASCII-generator)。
根据 ASCII generator 的 GitHub 页面显示,该软件的作者是 vietnh1009,在 Sporttotal 公司担任高级人工智能工程师。
就 ASCII generator 项目而言,这是一个用 Python 编写的工具,可以将图像或视频转换为 ASCII 艺术(以字符排列形式呈现图片或图案)。
GitHub 示例中用中文生成 ASCII 艺术
其采用了 MIT 开源许可证,这意味着任何人都可以免费使用、复制、修改、分发、再许可甚至出售基于该软件的作品。只不过此协议还有一个要求,就是使用者必须在软件或相关文档的所有副本中保留原作者的版权声明及许可证内容,移除这些信息可能会构成违反许可协议的行为。
而在何同学初版视频中,其不仅没有露出开源原作者的信息,且用了“专门写了一个软件”字眼,因此遭到了不少开源开发者的指责。
面对质疑,虽然何同学迅速在评论区做出回应,承认了自己的软件的确是基于 ASCII generator 项目开发:
我们看到了大家在评论中关于字符画转制程序的讨论。我们视频中使用的字符转制程序确实是由开源项目 ASCII-generator 改动而来,改动的内容主要是优化字符生成比例、图片裁切方式和传参方式。视频中55秒的旁白“所以我们专门写了一个软件,可以把预览动画里的色块转换成字符”确实不严谨,非常抱歉在视频里没有指出这一点。
之所以会出现这种情况,是因为我在写视频的文案时不够严谨,没有和相关同事做好沟通,并没有意识到这个程序是从开源程序改动而来,也没有尽到审稿义务,实在抱歉。我们已经对视频进行换源,修改了相关描述并增加引用来源,同时进行内部检讨,反思流程和审稿上的问题。衷心感谢大家的监督。
同时替换了 B 站的视频源。但不少网友对于此番回应并不买账:
怎么说也是个老互联网人了 你能不知道这种开源别人不知道吗
代码的事界限很难评,现在很少有程序不引入三方包库,纯自己码的。那些明显改造对方代码实现主要功能的的确该说明下,还有其他辅助开发的三方库是否也需要公示呢。
使用代码没有错,用来盈利就不地道了
截至目前,还有人发现,其在微博上同步的视频依然是最初“写了个软件”的版本,没有做替换,只是在评论区做了如上的回应。
开源项目作者回应
随着事情的发酵,开源项目原作者 vietnh1009 在知晓此事后,也进行了回应。
微博用户、也同是一名程序员的 @epcdiy 对「原作者 vietnh1009 写给何同学的一封信」进行了翻译,详细如下:
各位好!
今天,多亏了一些在Github上的中国朋友告诉我,你们正在使用我的个人项目(https://github.com/vietnh1009/ASCII-generator/blob/master/img2img_color.py),并且声称自己编写了该代码(视频中的时间戳为00:56)。我还制作了两段 YouTube 教学视频,指导我的观众(主要是越南人)如何免费编写这段 Python 代码。你们不仅在窃取他人的工作成果,还在欺骗自己的订阅者。我想我可能不是第一个被你窃取作品的人。对我来说这没有关系,但我不希望你从中获利,因为这不是你的原创作品,并且你的观众值得更好的东西。他们付钱给你是为了欣赏你的创意和努力,而不是为了从互联网上盗用别人的东西。
此外,@epcdiy 也对此事分享了自己的看法:
开源版权意识的欠缺,我们该怎么做?
事实上,开源软件本身本身允许其他平台使用自己的代码,但开源软件的许可证要求使用者提供源代码和所做修改的公开版本。遗憾的是,许多公司在使用这些代码后并未能遵守这一规定。
根据 CSDN 《2024 中国开发者调查报告》显示,开源协议是开源的重中之重,但依然有 22% 的开发者在使⽤开源项⽬时,没有关注过开源协议就直接进⾏使⽤,这可能使自己陷入开源合规风险。
除了今天发的事情,此前也有开发者有过类似的经历,彼时我们也曾报道过——澳大利亚的一位开发者 Brendan Gregg 发布了一篇《An Unbelievable Demo》控诉自己在多年前开发的一款开源项目被彼时的科技巨头 Sun Microsystems 作为商业产品的部分进行销售,其中该公司还将他的代码涉及其姓名的注释部分全部做了删除处理,而世界轮回,最终这款产品销售对象之一竟然是自己,颇为讽刺。
开源吞噬软件的大趋势下,其实当我们提及“为什么会选择开源”时,在《新程序员001:开发者黄金十年》中:
UNIX 的命名者 Brian W. Kernighan:开源是一件非常好的事情,它对软件行业的发展至关重要(现在几乎所有东西都和开源有关)。如今我们其实已经取得了很大的进步,主要的软件系统,如操作系统、编译器和工具都可以作为高质量商品免费提供;
Vue.js 作者尤雨溪:开源有一个好处就是只要项目技术过硬,就可以跨越文化和语言的隔阂;
OpenCV 创始人 Gary Bradski :如果我要走商业化的道路,应该可以赚很多钱,但我更关心开源对社会进步的推动。但另一方面,我并不认同开源完全免费,资金支持很重要。
开源本是以开放、共享、协同为本质,成为众多科技公司和个人开发者的利器之一。然而,如果忽视了对版权和协议的尊重,开源的理念就可能变得模糊,甚至变成没有约束、没有责任的“自由”环境。那么,我们究竟该怎么理解 MIT 协议,《大教堂与集市》译者卫剑钒曾在参加 CSDN 访谈时做出分享,其表示:
MIT 协议一共包括三段说明:
第一段表达的是如果你满足我的要求,你就可以拥有使用、拷贝、修改、合并、发布等这些操作的权利,但前提是必须得满足协议中的条件;
第二段所注明的条件就是需要附上版权信息及 MIT 协议。事实上,使用者附上 MIT 协议全文或者附上 MIT 的链接都可以的。
第三段有个很重要的部分就是免责声明,它明确了这个软件是“AS IS”的,“AS IS”的意思就是“就这样的”,售出 ( 或免费提供 ) 后一概不负任何责任,“别再找我,就这样了”,简单来看,就是如果出了问题可以让原作者免责。
MIT 其实非常宽松,操作也非常简单,但要求就是要把版权方和这个协议放上去。我在《从 MIT 协议谈契约精神》一文中,也详细地翻译了 MIT 协议的说明。
至于该如何提升大家的版权意识,OSCAR 开源共读发起人、LF APAC 开源布道者团队主席李建盛(适兕)曾表示:
这个问题引发的辩论是:开源的内容到底存不存在剽窃一说?我认为这是存在的。作为一个现代文明的受益者,我们所有的接触的知识,其实都是前人留下的。当前所塑造的东西,几乎都是从前辈手里学来的。那么,从哪儿来学到的内容,把原著标出来就好了。这就避免了剽窃的存在。
因为开源并不是“无主”的开源。尽管有些成果放在公有领域,那也是有原作者的。使用者应该保持一个敬畏之心,引用别人的内容,不管是一个词或者是一句话,都应该注明出处。
参考资料:
https://weibo.com/1229700913?refer_flag=1001030103_
https://www.bilibili.com/video/BV1LVmRYzERY/