User:Cosechy/suggests
来自"NOCOW"
(黑色的字太不明显了)
这个网站,能运行起来,怎么说也是比drs那些人有效率多了,应该说有个好的开始就不错
不过看这个网站,感觉好多地方都有点乱
下面是我的一些建议
目录 |
[编辑] 版权
这个不用怎么说了吧,不过版权也是最重要的,我建议用gnu fdl或者cc-by-sa
我觉得gnu fdl更好,这样还可以把东西弄到wikipedia,当然题库之类的东西肯定是不行的
版权必须得快点决定下来,因为写东西的人得承认这个版权,一个人写东西的时候应该把版权确定下来,当然也可能是暂时保留所有权利,但是像这样,相当于是把所有权利保留给nocows
而确定版权以后,除非是会让大家鄙视的nocows保留所有权利,nocows是不能随便更改版权的,因为写东西的人是用那个版权发表的东西,要修改版权必须得把所有别人写的内容删除
另外我觉得这个应该允许商业目的,以前OIBH有人说想出书,这个要能弄到大的话,就是很好的替代方案
[编辑] 程序代码版权
另外我建议,程序代码可以考虑用特殊的版权,比如GNU LGPL或者Public Domain,这样对大家应该是好事
[编辑] 内容结构
那个源代码字体太小。。。。。。!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 可以调大点么??!??!?
[编辑] 分类
现在的结构不太清楚吧,比如,应该有分类,把算法和题目分一下类。
另外不应该随便建条目写讨论和公告之类的,至少用个名字空间,比如nocows:,另外应该有个目录,可以用wikipedia式的模板。
对于这些内容,也不用麻烦管理员自己整理,只要有个规范,因为wiki的体制,过一段时间大家就可以弄好了,但是必须有个规范,否则别人不知道怎么弄。
像需要关注的页面之类的也得有的。
另外程序代码有的时候会单独放在一个网页,这个网页的名字也应该有个规范,我建议用一个独立的名字空间,比如Code:,Sample:,或者Sample_Code:
C++和pascal,以及未来可能有的别的语言的程序可以用子页面或者加在名字空间的前面,不过感觉要是能用一样的链接格式分别在c和pascal的内容里链接到c和pascal的程序好像不错,可以考虑向mediawiki建议一下,或者也说不定已经有这个功能了
[编辑] 讨论
加命名空间的想法很有意义,有些题目或解题报告是重名的,不加命名空间就出问题了。另预定USACO系列的命名空间USACO:。
- 但是我觉得这类东西就不应该用名字空间了,应该用子页面之类的,比如ride/模拟、ride/统计、ride/贪心、ride/hash之类的,差不多的两种算法可以像这样:ride/统计_随机化。因为题目是主体,一般地说这些东西应该都写在一个页面上,要是太多了才要分开,而且有些人讲题可能比较喜欢提前写一下不过的算法,还有搜索题可能有很多一样的优化,这些东西就不应该重复写了,而且对于搜索题,主体是优化,要是有里面的优化完全不兼容的两种结构才能算两种算法。有的时候搜索和非搜索说不定都有可以共用的优化,这时候要单独列出一个章节。
- 至于两个人写的同一种算法的解题报告,应该是没什么意义,当然要是有描述不清楚的地方可以互补一下,但是最后要合成一个解题报告。要是nocow想收藏解题报告的话,可以单独开一个名字空间,这个名字空间可能也不适用于GFDL或者CC-by-sa的协议,但是既然是wiki,主体就应该是一个真正对OIer有帮助的东西,而不是一些收藏品,那些东西可以另加链接。
- 至于条目名是ride还是USACO_ride还是USACO:ride那就比较无所谓了,我建议不要用USACO:ride,因为题库很多,随时建新的名字空间比较麻烦,而且名字空间一般是表示和主要内容不同类的东西,比如[[NOCOW:]],[[Help:]],[[User:]],[[User_talk:]],USACO也加在这里就比较乱了,子页面倒是可以考虑,比如USACO/ride,不过看着好像比较麻烦。
- 另外我觉得一些经典题目或者题目模型应该单独设页面,完全没改过的题目重定向到那里,比如Fence Rails和fence8(我没记错的话)重定向到多个背包问题,之类的,讲算法的时候可以以这个题目作例子,至于具体实现可以有适用于每个题目的,条目用原来的名字。
- 这样的话,我建议新加两个名字空间:Code,表示代码,版权最好是gnu lgpl;然后还有一个名字没想好,表示引用的可能有别的版权的东西,不过除非作者要求不用保护,这样可以方便更正错别字或者加作者的补充之类的。不过即使已经有有版权的版本了,大家还是应该尽量弄出copyleft的东西来,因为有版权的东西不能随便改。不过最好去申请一下版权,OIer应该还是比较愿意奉献一下的,但是随便给人安上可自由修改的版权还是不道德的。当然要是nocow不打算放这些东西,可以无视我前面这段话。另外Code我建议不要用有别的版权的东西了,免得有麻烦或者有编辑战之类的,而且code也没有收藏价值之类的。另外基本算法和数据结构和别的东西。。好像不用分开了吧。
- 我好像写得有点多了,占了不少讨论的地方 --Cosechy 13:11 2007年4月19日 (CST)
[编辑] 页面内容
[编辑] 普通页面
另外写东西也应该有点规范,而且wikipedia的模板之类的也是可以参考一下的。
这个网站的内容不是必须要注来源,但是复杂一点的东西应该有证明,如果还没写证明就应该先注上来源。
[编辑] 程序代码
另外题目可以有多种解法,对于可以过的本质不同的算法应该都写一下,既然都写就应该有个具体的规范,每一节的题目用什么之类的,当然会超时的那些要是有用在前面简单说一下就可以了。另外对于搜索,不像别的题,每一节应该就是一个优化,有冲突或者有依赖性的优化也得用一个规范注出来。
还有算法和数据结构的样例程序也是,有的时候有多种实现,而且各有各的优势,当然时间复杂度有区别的内容,比如dijkstra的带堆和不带堆的两种实现,可以当成两种不同的算法,但是有的不影响时间复杂度的东西,比如左右旋写在一起还是分开,写在一起比较省事,但是对有的人来说,理解可能有点困难。
关于程序代码的其他内容我补充到上面相应的地方。。
另外我建议,程序代码最好写的通用一点,而且尽量多引用nocows里有的名字很清楚的别的函数,像floodfill算法,对每一种图的遍历搜索算法都有一种floodfill,通常是宽搜,而在求强连通块的时候就要用深搜,在求最小费用最大流的时候就要用dijkstra,而这时候实在没必要把一段代码写N遍,而参数上写个搜索函数,大家大概也都明白是什么,事实上算法的思想反而更清楚
当然,这样就得有链接,也得有命名规范,我建议条目名就用算法的名字,过程/函数以及章节名用标准的英文,不过可能有点乱,参数用索引,值,函数的顺序,每一部分就用最通常的逻辑顺序,当然要通用一点,值也不能就随便用个integer类型,但是不确定类型的话,c++应该方便一点,不过也得照顾一下用pascal的,还有看不懂过程参数的人,也可以考虑另外弄具体的例子。
我的想法,比如Treap删除,就用Code:Treap/Pascal#Treap_Delete,或者用Code:Treap#Treap_Delete,里面分一节c++和一节pascal说不定也可以,或者Code:Treap_Delete,反正过程名应该弄得唯一,不过可以放好多种不同的实现。具体怎么办可以商量一下
有能力的话也可以在mediawiki的程序上优化一下,弄得能打包下载也不错,说不定能给gnu做点贡献:-)
补充一句,对于不同OJ的相同题目,还有不同时限和数据范围的本质相同的题目,应该用重定向吧,对于描述不同的也可以考虑重定向,不过不同点得在前面说出来。
而且在这写东西说不定要引用题目内容,这个应该是fair use。
[编辑] 补充
为了更通用一点。。对于C++的数据结构操作,应该尽量写成类的函数
不过也应该照顾一下看不懂的人和用pascal的,这个可以讨论一下。。
另外注释也是很重要的,另外变量和函数的命名。。orz
[编辑] 关于、规范、帮助、讨论、社区页面
这些内容应该快点弄出来
规范也应该有个讨论之类的,不过最开始可以管理员随便弄一个,或者表示有这种想法,让大家随便弄,然后再商量。规范也应该照顾一下已经有的内容。
社区,要真弄出社区的气氛,另外nocow不像wikipedia,在讨论页里设答疑和题目求助也不错
不过对于未知来源的题就搞到社区页面吧,以后考虑弄题库也不错
另外对于没去过wikipedia的人,也应该有个帮助,至少加粗,倾斜,链接之类的应该写写
[编辑] 命名规范
应该有个命名规范,其他相同的页面重定向。
[编辑] 体制
[编辑] 管理
关于谁当管理员,之类的问题怎么办,当然OIer也不是特别多,大概有人该当管理员的时候就自然而然的当上管理员了
还有删东西的标准之类的,侵权的东西怎么也应该删除,但是怀疑侵权的得给人时间解释,另外不侵权的东西得保留下来
另外还有规范的制定,也是因为OIer不多,怎么制定可能也差不多,不过什么时候nocow的东西多了的话,这个会影响别人的编辑
[编辑] 后记
还有什么我随时加。。
我可能太受wikipedia影响了
另外有些问题可能我写的时候就已经在解决了,这点抱歉,可以无视相关的内容
--Cosechy 17:40 2007年4月17日 (CST)

