Google I/O 页面有彩蛋
pwwp @ 2013.03.09 , 10:12 上午[-]
#由于PNG转换JPEG后有过压缩,因此下面的代码比较模糊。在 Zak El Fassi的原文里面有所有的代码,码农蛋们可以自己去看~
如果这两天你点击过Google I/O 2013的页面,在页面里面轻轻抚摸出oioi等等序列,比如IIIOOIII,那么I/O的图标就会变成一个由猫咪们组成的图标。I/O页面的彩蛋一共有12种, Zak El Fassi找到了所有密钥序列以及找出密钥的方法。
以下12个OI序列就是Google I/O页面所有的彩蛋:
Cat : IIIOOIII
Space: OOIOIOIO
Pong : IOOOOOOI
Bacon : IOOIOOOO
Simone : IIOIOOII
Eightbit : OIOIOOII
Synth : IOOOIOOO
Song : IIOIIOII
ASCII : OIIIIIII
Bowling : OIIIOIOI
Rocket : OIOOOIOI
Burger : OOIIIOOI
发现的方法如下:
和OIOI有关的主要代码都储存在页面 /js/app.min.js 中,但是,由于代码都是编译后的产物,直接阅读相当吃力。幸好有了Chrome的Sight插件,能够让代码看起来简洁一点。不过,整理后的代码仍然不是给人读的。
于是,我(#原作者)把所有代码扫了个遍,希望能找到彩蛋的迹象,结果找到了这个:
[-]
这段话带来的信息并不够,不过我仍有机会去看清谜团背后的真相。于是,我又查了查 ww.mode.register 这个函数,代码如下所示:
[-]
好的,现在我又得搞明白 Klass 、Pattern 、Len 的含义了。我先查找了klass这个词,毕竟这个词很特别,查找到的几率特别大。呵呵,下面的东西就出来了,这段代码解释清了好多东西。
[-]
在这里,我们还需要搞明白三个东西的作用:ww.util.pad、 d.pattern 和 d.len。
ww.util.pad可能是一个与d.len进制转换相关的函数(代码如下),而上面递交的参数d.len = 8,8禁止转换。d.pattern 就是先前 ww.mode.register 里面的参数c。
[-]
好了,现在啥都清楚了。我只要重新把这个 ww.util.pad 写成一个独立的函数就好了。
[-]
PREV : 穿戴式生理环绕音响
NEXT : South Dakota允许教师在校内携枪