Conway’s Game of Life

康威生命游戏是英国数学家约翰·何顿·康威在1970年发明的细胞自动机。它最初于1970年10月在《科学美国人》杂志上马丁·葛登能的“数学游戏”专栏出现。

规则

生命游戏中,对于任意细胞,规则如下:
每个细胞有两种状态——存活或死亡,每个细胞与以自身为中心的周围八格细胞产生互动。
当前细胞为存活状态时,当周围低于2个(不包含2个)存活细胞时, 该细胞变成死亡状态。(模拟生命数量稀少)
当前细胞为存活状态时,当周围有2个或3个存活细胞时, 该细胞保持原样。
当前细胞为存活状态时,当周围有3个以上的存活细胞时,该细胞变成死亡状态。(模拟生命数量过多)
当前细胞为死亡状态时,当周围有3个存活细胞时,该细胞变成存活状态。(模拟繁殖)
可以把最初的细胞结构定义为种子,当所有在种子中的细胞同时被以上规则处理后, 可以得到第一代细胞图。按规则继续处理当前的细胞图,可以得到下一代的细胞图,周而复始。继续阅读

开源在今天的软件业已经很普遍,但开源是否意味着使用者可以对开源后的代码为所欲为呢 ? 答案当然是否定的。开源运动同样有自己的游戏规则和道德准则。不遵行这些规则不但损害开源运动的健康发展,也会对违规者造成名誉和市场上的损失,更可能陷入法律纠纷和赔偿。现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种。我们在常见的开源协议如BSD, GPL, LGPL, MIT等都是OSI批准的协议。如果要开源自己的代码,最好也是选择这些被批准的开源协议。首先借用一张相当直观清晰的图来划分各种协议:

继续阅读

由于本人并不准备搭建旧版本WordPress的运行环境,于是决定从代码入手,分析这个彩蛋。

在revisions-js.php中定义的函数dvortr()作用是使用一对一的替换来加密字符串,该文件中有两次调用此函数:dvortr( “Erb-y n.y ydco dall.b aiacbv Wa ce]-irxajt- dp.u]-$-VIr XajtWzaVv” )和dvortr( ‘Eabi.p!’ )。经过解密,其输出分别为”Don’t let this happen again. <a id=’goback’ href=’$’>Go Back</a>.”和’Danger!’ 。

而定义的变量$j作用是包含jQuery库,$n是获取的当前用户名,$d是noscript时的输出。通过替换掉一些WordPress中定义的函数,我成功地使部分解码后的php文件在本地Apache服务器成功运行。并且,我还重新制作了这个彩蛋,现在它已经可以在本站以某种方式触发~

下面附上整个解密过程中所用到的文件。其中revision.php和revisions-js.php是原文件,decode.php是部分解密后的文件,decode.js是浏览器获取的匿名js文件,decoder.html是根据原文件的加密算法编写的加密、解密脚本。

WordPressEasterEgg