设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2928|回复: 14
打印 上一主题 下一主题

[讨论] 有时候不得不怀疑某些脚本的原创度

[复制链接]

Lv1.梦旅人

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
跳转到指定楼层
1
发表于 2011-9-18 20:00:49 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
为了避免麻烦,所以设置了阅读限权

我偶然地发现6R上的一个脚本与RUBY里的内置脚本几乎无差,
所以我不得不怀疑这个脚本的原创度,
以下的隐藏内容是那个脚本
游客,本帖隐藏的内容需要积分高于 7 才可浏览,您当前积分为 0

这个“原创”脚本还已经发布许久了,
个人认为这种问题相当严重,有必要讨论讨论
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党

Lv2.观梦者

(?????)

梦石
0
星屑
727
在线时间
1327 小时
注册时间
2011-7-18
帖子
3184

贵宾

15
发表于 2011-9-19 04:47:43 | 只看该作者
苏小脉 发表于 2011-9-19 03:51
又岂单单是英语而已。这段脚本所用单词固然是英语,但其中又有不少缩写,如 packdw 中,dw 即“双字”的 ...

到这里我们也只能说两个脚本非常相似,但没有任何直接证据表明该脚本是RUBY内置脚本的抄袭——因为所有的风格就算有再多的巧合也有逻辑可循。

说到底我们只能怀疑 ╮(╯_╰)╭

条款这些东西全都是靠自觉遵守啦……

尤其是在现在的天朝……

嘛 ╮(╯_╰)╭ 就是这样。

>...< 回顾一下刚才的帖子发现我难道有Lv.5转移话题的能力……
怎么扯到1+1=2的 lol 这习惯可不好 = = b 怎么破……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
14
发表于 2011-9-19 03:51:10 | 只看该作者
各种压力的猫君 发表于 2011-9-19 01:54
变量命名不就是英语么 = = b 找你的说法应该改成 “增加键值” “删除键值”…… 不成?
缩进风格的话, ...
变量命名不就是英语么 = = b

又岂单单是英语而已。这段脚本所用单词固然是英语,但其中又有不少缩写,如 packdw 中,dw 即“双字”的缩写,此处若命名为“packdword”或“pack_dword”则单词仍“是英语”,却已与 registry.rb 中命名不同。此一巧。

找你的说法应该改成 “增加键值” “删除键值”…… 不成?

不然,中文命名自来便为众人所不屑。`OpenKey' 是匈牙利命名风格,但 Ruby 编程多用 `_' 分割标识符中单词,至不济也可用 CamelCase 命名为“openKey”,这段脚本恰好便用了匈牙利命名法,此二巧。然顾及 Windows API 函数以匈牙利命名法命名,此处在 Ruby 中也用一致的命名倒也合情合理。

缩进风格的话,咱也是习惯按照默认脚本风格进行缩进的……

缩进风格不仅决定“每加深一代码层级空几格”,亦决定“在代码行过长时如何换行”。仆所言“缩进风格”,是指下端代码的换行方式:
  1.         check RegQueryInfoKey.call(hkey, 0, 0, 0, subkeys, maxsubkeylen, 0,
  2.           values, maxvaluenamelen, maxvaluelen, secdescs, wtime)
  3.         [ unpackdw(subkeys), unpackdw(maxsubkeylen), unpackdw(values),
  4.           unpackdw(maxvaluenamelen), unpackdw(maxvaluelen),
  5.           unpackdw(secdescs), unpackqw(wtime) ]
复制代码
此三巧。

此外,check 调用时不加括号,四巧。以空格分离数组元素与 `[' 、`]',五巧。局部变量 `maxsubkeylen' 等以 pre-standard C 命名风格命名,六巧。

难道代码风格还成了专利?

不知谁言是?

我用这种风格其他人就不准用?

绝无此事。仆举出代码风格一项,只为一个“巧”字耳。

那是不是以后原创脚本都不能用API了因为API是既有的而且其他人的脚本里有一模一样的调用方法?

不知是谁于何处说过“以后原创脚本都不能用API了”?作如是浅见者,仆欲一见。;P
API 的使用合法性这取决于 API 以何种软件许可发布,用户以何种形式使用 API 。[1] 仆之前曾言道 Ruby 是在部分 GPLv2 + Ruby 许可下发布的软件,其中有明文说明如何进行二次开发是合法的,详见十楼,不再赘述。F/OSS 许可下的 API 只要付出少量的代价(如 copyleft)便能免费使用,但私有(商业)许可下的 API 则需要付费使用,如苹果的 Cocoa API。主楼里在 66RPG 发布脚本的那位作者若是自 Ruby 发布的 registry.rb 中提取了代码,并进行(将 dl 的使用替换为 Win32API 的)二次开发,便算作对源文件的修改而不是原创,故 Ruby 许可的开头条款生效:

You can redistribute it and/or modify it under either the terms of the GPL
version 2 (see the file GPL), or the conditions below: [...]

既然该作者没有以 GPLv2 发布那段脚本,就须得包含 Ruby (1.9.3 之前的版本)发布时附带的条款,即:

  1. You may make and give away verbatim copies of the source form of the
     software without restriction, provided that you duplicate all of the
     original copyright notices and associated disclaimers.

  2. You may modify your copy of the software in any way, provided that
     you do at least ONE of the following:

       a) place your modifications in the Public Domain or otherwise
          make them Freely Available, such as by posting said
          modifications to Usenet or an equivalent medium, or by allowing
          the author to include your modifications in the software.

       b) use the modified software only within your corporation or
          organization.

       c) give non-standard binaries non-standard names, with
          instructions on where to get the original software distribution.

       d) make other distribution arrangements with the author.

  3. You may distribute the software in object code or binary form,
     provided that you do at least ONE of the following:

       a) distribute the binaries and library files of the software,
          together with instructions (in the manual page or equivalent)
          on where to get the original distribution.

       b) accompany the distribution with the machine-readable source of
          the software.

       c) give non-standard binaries non-standard names, with
          instructions on where to get the original software distribution.

       d) make other distribution arrangements with the author.

  4. You may modify and include the part of the software into any other
     software (possibly commercial).  But some files in the distribution
     are not written by the author, so that they are not under these terms.

     For the list of those files and their copying conditions, see the
     file LEGAL.

  5. The scripts and library files supplied as input to or produced as
     output from the software do not automatically fall under the
     copyright of the software, but belong to whomever generated them,
     and may be sold commercially, and may be aggregated with this
     software.

  6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
     IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     PURPOSE.


然作者并未包含任何声明,则有违软件许可。

[...] 因为API是既有的而且其他人的脚本里有一模一样的调用方法?

有一模一样的调用方法并无碍,这属“使用库”,不算修改、二次发行代码。主楼提及的脚本作者乃是以与 Ruby 发行版中相同的代码实现了相同的接口。

[1] 用户若以二进制形式使用 API,便不存在源代码复制的问题。
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv2.观梦者

(?????)

梦石
0
星屑
727
在线时间
1327 小时
注册时间
2011-7-18
帖子
3184

贵宾

13
发表于 2011-9-19 01:54:42 | 只看该作者
苏小脉 发表于 2011-9-19 01:50
*Value、*key 等方法大同小异,不过是将用标准库中的 dl 改为用 Win32API;QueryInfoKey、unpackdw、pack ...

变量命名不就是英语么 = = b 找你的说法应该改成 “增加键值” “删除键值”…… 不成?
缩进风格的话,咱也是习惯按照默认脚本风格进行缩进的……
难道代码风格还成了专利?我用这种风格其他人就不准用?
那是不是以后原创脚本都不能用API了因为API是既有的而且其他人的脚本里有一模一样的调用方法?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
12
发表于 2011-9-19 01:50:48 | 只看该作者
各种压力的猫君 发表于 2011-9-19 00:44
表示咱实在看不出来……哪个部分几乎无差。
标准写法如此,还能怎么办?
难道你写了1+1=2就不允许我再写1+ ...

*Value、*key 等方法大同小异,不过是将用标准库中的 dl 改为用 Win32API;QueryInfoKey、unpackdw、packqw、packqw、unpackqw 等更是一模一样,不知猫卿如何瞧不出。天下纵有各自独立开发的相似代码,亦断无如此相似之理。那些个方法、变量命名、缩进风格,又如何有“1+1=2”般的“标准写法”?
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv2.观梦者

(?????)

梦石
0
星屑
727
在线时间
1327 小时
注册时间
2011-7-18
帖子
3184

贵宾

11
发表于 2011-9-19 00:44:28 | 只看该作者
经过比对之后,我们可以发现,这两个脚本几乎无差

表示咱实在看不出来……哪个部分几乎无差
标准写法如此,还能怎么办?
难道你写了1+1=2就不允许我再写1+1=2了么 = =
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
10
发表于 2011-9-19 00:20:12 | 只看该作者
Ruby 1.9.3 之前采用的是一个混合了部分 GPLv2 条款的 Ruby 许可,其中有如下声明:
  1. 2. You may modify your copy of the software in any way, provided that
  2.      you do at least ONE of the following:

  3.        a) place your modifications in the Public Domain or otherwise
  4.           make them Freely Available, such as by posting said
  5.           modifications to Usenet or an equivalent medium, or by allowing
  6.           the author to include your modifications in the software.

  7.        b) use the modified software only within your corporation or
  8.           organization.

  9.        c) give non-standard binaries non-standard names, with
  10.           instructions on where to get the original software distribution.

  11.        d) make other distribution arrangements with the author.
复制代码
该脚本发布者满足了 a),但没有在发行时包含完整的原声明,此乃一过。发布楼的标题是【注册表v0.1】并无不妥,软件二次发行后自然可以由二次发行者重新拟定版本方案,这并不意味着发行者作出了“所有代码均为原创”的声明。
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
9
 楼主| 发表于 2011-9-18 22:32:12 | 只看该作者
不过我倒想请教这个要怎么用啊?
马来西亚网速太渣,范例下载不了,
脚本连个注释都没有,我又是API白痴,
所以请教一下

点评

不是马来西Y网速太差,身在天朝的我,6R现在的附件,我一样也下不动  发表于 2011-9-18 22:44
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复 支持 反对

使用道具 举报

Lv1.梦旅人

神仙

梦石
0
星屑
69
在线时间
596 小时
注册时间
2007-5-14
帖子
1289
8
发表于 2011-9-18 21:48:24 | 只看该作者
好吧还差2分
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

7
发表于 2011-9-18 21:30:59 | 只看该作者
因该是看完Ruby的写的吧……
不信百度“Ruby 注册表”
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-4-10 00:11

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表