什么,十三又被惹到了?

“十三”是一个程序员的化名,他有个公众号叫“程序员十三”

一开始,我感觉是不是又是和去年(2020)那事差不多?

起初看了看,还不太一样,事件要稍稍奥妙一些。


图|哆啦A梦:伴我同行2

去年就有过一档事

一年前,我关注到十三,是因为他的“新蜂商城”源代码被人卖,弄得满城风雨。

有人说,卖人家开源代码真是无耻;有人说,能够卖,没问题。

起初我写了一篇文章(从MIT协定谈契约精力)说,当然能够让人卖,你用的是MIT协定,MIT是容许人家卖你代码的。

起初这事就过来了,十三痛定思痛,申请了软件著作权,并把代码改成了GPL协定受权。(尽管这些并不障碍他人持续卖他代码)

不承想,往年(2021)竟然又惹上了事件!

6月初,十三的公众号连发了几篇文章,大抵就是强烈控告“慕课网”抄袭了他的代码。

十三说,要告慕课网,曾经收集好证据,曾经请好了律师。

往年事件的缘起

和去年一样,事件的发现,也是十三的敌人通知他的,说你看看,慕课网用了你的新蜂我的项目当课程呢。

课程在这里:
https://class.imooc.com/sale/java2020

我去看了看,这个课程是“java工程师”。

我比拟感兴趣的是这个宣传语:

看着真迷人,我要是年老二十岁,我也想学。

这个课程内有多个实际我的项目,其终极我的项目是:仿“JD生鲜”大型电商平台全流程开发。

项目名称是:“慕慕生鲜”。

不得不说,文案还是挺好的。

十三看了一下该项目标页面预览图,立即就认出了本人亲儿子的面目:

“newbee-mall 我的项目毕竟是我保护了 3 年的开源我的项目,真的是一眼就看进去了。页面是无比的相熟,同时,情绪也是无比的简单。”

其实就是从排版、布局、按钮、字体、色彩等方面一看,就晓得和本人的货色是截然不同的。

比方有一点是十三专门强调的:我的项目的前端页面的次要由黑、白、主色形成的,“慕慕生鲜”(以下简称“慕慕”)的主色号,正好和“新蜂商城”(以下简称“新蜂”)的截然不同:#1baeae,这并不是一个罕用的色彩。

具体能够看看十三这篇文章:……这又是什么骚操作?

十三为了拿到实锤,专门花了3680元,买了这个课,下载了慕慕的源码。

十三信心看一看,源码到底是不是抄的。

工夫信息还是要阐明一下

尽管是十三发难慕课网,然而工夫信息还是要阐明一下的。

不然,会有这么一个问题:谁抄谁还说不好呢!

尽管我没有见过剽窃者告被剽窃者的,但如果原告者拿出本人在更早工夫创作该作品的证据,那就不好告。

newbee-mall开源我的项目于2019年国庆节期间开源1。

慕课网的“Java工程师”体系课程于 2020 年上架销售。

十三申请了著作权,获取著作权的工夫为:

我想,慕课网大略是拿不出早于这个工夫的证据吧。

源码是抄的吗?

说起来还真有点简单,不是齐全剽窃那么简略的。

1. 绝大多数的后端代码都是重写了的。

随机筛选了一些后端代码文件,认真比照了一下,尽管大框架差不多,然而代码的确不太一样。

如果让论文查重软件查一下,预计反复率不超过5%。

2. 版权信息全副清空了

和很多齐全没有版权意识的我的项目一样,慕慕是齐全没有版权信息的。

新蜂以前也是没有的,但通过去年那预先,新蜂源码(后端局部)的头部都改成了这个样子:

尽管我对这段不太称心(应该明确说用了什么协定),但也不便多说什么,好歹在根目录还是申明了license是GPL。


但慕慕就齐全没有这个意识了。

慕慕所有的代码,都是“光头”。

第一行就是代码,这是无版权意识者的通病。

3. 不过,慕慕必定是来自新蜂的。

慕慕至多是“接触”过新蜂的,也就是说,慕课网的人,至多是编写教程的某人,是看过新蜂代码的。

一个最显著的证据就是,十三竟然在慕慕外面,发现了新蜂的logo图片和十三的收款二维码!

下图是慕慕的代码目录构造,红色箭头批示的就是没删洁净的文件:

也即,慕慕代码里有上面这个文件:

还有这个文件:

这个可是十三的收款码,我用支付宝扫了一下,看上去是用于给十三捐献用的:

你说一个做慕课网课件的人,没事在课件里放新蜂商城的logo和十三的收款码干什么呀,那明显就是拷贝过来没删洁净的遗留物啊!

具体见十三的文章:……外面居然有本人写的开源我的项目!

十三还认真地比照了慕慕和新蜂的每个页面,得出结论:

总得来说,慕慕生鲜算是newbee-mall的低配版,大多数性能都是截然不同的。然而慕慕生鲜中删减了很多性能,页面也删掉了几张。

另外,十三剖析后发现,表设计也根本是一样的。

这里讲一下几个次要表的设计:

  1. 分类表:字段根本截然不同,没有什么区别
  2. 商品表:字段基本一致,与newbee-mall我的项目相比,删除了三个字段,别离是:商品原价字段、商品小标签字段、商品详情字段。
  3. 购物车表:字段基本一致,与newbee-mall我的项目相比,减少了一个字段。
  4. 订单表:字段基本一致,与newbee-mall我的项目相比,减少了两个字段,别离是发货工夫和交易实现工夫。

具体见 ……更多实锤看这里

4. 最重要的是,通过对前端代码的剖析,慕慕和新蜂的前端有超过90%的雷同。

证据在哪呢?

十三是找到了:由webpack按需加载来谈一谈慕课网涉嫌剽窃开源我的项目的事件

这篇文章,从原理上,从具体分析上,从代码比照上,十三证实了至多在前端,慕慕是抄新蜂的。

十三的论断:

最终的比对论断:(前端)代码反复度为90%以上,不仅仅剽窃页面代码,连文案也完完整整的剽窃,这是赤裸裸的剽窃行为!除以上列举的代码剽窃外,还有login.js文件、register.js文件、header.js文件、search.js文件、cart.js文件、personal.js文件、personal-sidebar.js文件、pay-select.js文件、order-settle.js文件、my-orders.js文件、order-detail.js文件、order-settle.js文件、alipay.js文件、weixin-pay.js文件,这些文件的代码反复度也根本都达到了90%以上。

十三想要什么后果

十三在他写的多篇文章外面说:

“我每年都会花不少工夫在newbee-mall这个我的项目的优化和保护上,今后我也会持续用心保护这个开源我的项目的。这是我的作品,你们不能就这么堂而皇之的进犯我的合法权益。”

我和十三交换了一下,他心愿慕课网:

下架课程,赔罪,抵偿。

慕课网的法务曾经和十三的律师有所交换,但仿佛并不顺畅,十三说,他近期就要把慕课网告上法庭。

十三很有信念,因为知识产权侵权两大要件:“接触”和“实质性类似”,从证据上,从公证上,他都筹备好了。

具体会倒退成什么样,咱们刮目相待吧。

那么,如何评判此事?

我感觉,慕慕不论是文案创意、架构设计还是代码根底上,从已有证据看,的确是基于新蜂的(至多是前端)。

如果你是基于(based on)新蜂的,你就要遵循新蜂所采纳的GPL v3协定。

而慕慕没有做到。

慕慕应该做什么?

1. 应该依照GPL协定,对慕慕也采纳GPL协定公布。

这很容易做到,在源码根目录下放一个License文件(或Copying文件),外面是GPL全文。

而后在适合地位申明本人用的是GPL。

2. 应该保留十三的名字。

这也很容易做到,保留新蜂每个文件的文件头即可。

3. 申明本人批改过。

找个适合的、醒目的中央,阐明本人在十三的原版上,做了批改,批改日期是什么时候。

我已经写过一篇人话版GPL v3解读,外面具体阐明了GPL到底都说了什么,对此趣味的能够读一下。

如果做到了这三点,慕课网依然能够卖本人的课(GPL容许你卖),依然能够只是买了课的学员能力下载源码(接收者能失去源码即可,并不要求你分发给全世界),依然能够不告诉十三,也不给十三钱。
如果做到这三点,十三再不服气,也是告不倒你的。

偏偏慕慕一条也没有做到。

即使慕课网说他用的是新蜂还是MIT协定时(2020年5月20日之前)的版本,那也要遵循MIT协定,做到下面说的第2条。

后记

原本就要说完了,又看到知乎上有一个匿名评论:

这就有点令人无语了,MIT是开源不假,GPL更是正经八百的开源啊,而且还是自由软件,还是copyleft啊,FOSS属性更多啊!

这哪里是“假开源”了?

开源协定在肯定水平上,能够看作是在恪守《著作权法》前提下,作者和使用者之间签订的合同,只不过没有签字而已,使用者只有用,就表明承受这个合同。

当初使用者违反合同了,当然能够维权了,当然能够不让再用了。

违规了,就要改啊,不改就能够告你啊!

多说两句

开源开发者,并不是不食人间烟火的神仙圣贤,在以后物质尚未达到极大丰富的社会里,开源我的项目的作者,也须要生路,也心愿能有额定的捐献或者资助。

在什么也得不到的状况下,至多要给人家贡献者一个“声誉”,如果拿了代码,连虚名都不能给人家(而且还是人家在协定里明确要求了的),那可就真是过分了。

这种事还是有好几桩的:

比方当年的 Asim诉go-chassis案。
再如:开源我的项目被人拿去做课程卖了1000多万是什么体验。

包含十三的文章,看下来,开源作者,看见他人用本人的代码赚钱或牟利,有愤懑,有控告,有不满,更有无奈,除了争一个名分,也在尝试可能的回报。但因为开源协定是容许他人卖的,如果人家做到了“留名”,不给任何回报也是无话可说的。

所以我说:

开源作者不须要太害羞,要钱也没什么可耻的,正如近几年来,很多开源我的项目把开源协定改为商业协定,你也能够改。如果你认为支出很重要,能够不再用MIT、Apache、GPL这些开源协定,能够改用你称心的协定,或者你本人全新设计的协定,比方能够加一条:“本我的项目源码凋谢,可无条件用于学习和钻研;但如果将本我的项目用于商业目标,请盲目将商业营收的1/10打给本我的项目作者,账号为:……”。

当然这种写法就不合乎OSI的开源协定定义了,这违反了OSD第1条。

按你的想法来,自在一点,不必非要合乎OSI或者FSF的要求。

不要害羞。也不须要那么崇高。

毕竟你是作者,你有权力要求这些。

文|卫剑钒

1 新蜂代码(https://github.com/newbee-ltd/newbee-mall/tree/master/src/main/java/ltd/newbee/mall)

相干浏览:
破费3680元买了一个慕课网的Java待业班课程,外面居然有本人写的开源我的项目!