星期四, 一月 27, 2011

光芒的制造

这是刚才下班路照的月亮,就是图片中最高的那个蓝色的光斑:

用一点小技巧就可以认为的控制光芒的方向。第一张是水平方向的,第二张是垂直方向的。当然如果愿意,我还可以做出各个角度的,比如斜向45度之类。

要控制光芒的方向,首先要了解,光芒是什么?
下面是一段Nerdy呓语,非Geek请跳过
** 衍射 **
实际上镜头眩光,是由于镜头边缘或者镜头内部的狭缝造成的衍射造成的衍射光斑。
衍射会发生在狭缝出现的时候,或者边缘。衍射的图样会垂直于狭缝展开。高中物理会讲过如何计算每一级衍射条纹的位置,用上一堆三角函数公式。不过那个只能处理给定宽度的单缝衍射图样。如果狭缝更为复杂就无能为力了。其实对于入射光为平行光,只要对狭缝,或者任意形状的狭缝,取傅立叶变换,就可以得出在焦平面上的衍射图样了。比如圆孔,就得到Airy斑。至于如何做Fourier Transform,就交给计算机,或者问伟大的http://www.wolframalpha.com大神了。
**********

所以,上面两张图,实际上是在镜头表面做出了一组衍射光栅。如果你的镜头足够便宜,比如手机镜头,做一组衍射光栅是非常容易的――只要用手指往一个方向抹一下就可以了。手指抹过的结果,是手指上的汗液油脂以及其他各种代谢产物与镜头表面的灰尘相混合,在抹过的过程中,由于指纹的摩擦,朝一个方向均匀排列。于是形成了细密的灰尘+油脂的纹理。这就是一个衍射光栅。从光学原理可知,其产生的衍射图样方向是垂直与手指抹动方向的。

同理可知。对于汽车的前挡风玻璃,如果没有使用专用的玻璃水或者擦玻璃的刮板来擦拭的话,比如只是临时用抹布蘸水擦一下,也会有相同的效应。如果产生大量水平的光芒,会影响对于前面两辆车的分辨。所以,应该尽可能产生垂直的光芒,那么擦玻璃的方向是――水平擦拭。

我可真够nerd的

通用短链接,用于解决magnet和ed2k的链接缩短

非常CD和BT中国,又一次倒下了。
其实,网站无所谓是网站,只是一个分享信息的地方,于是只要有分享行为,就无所谓是在这个网站还是那个网站,人们之所以上一个网站,仅仅是因为那里容易找到东西。
所以不论是BT还是电驴还是什么其他的,其实都只不过是在twitter上的一个带着#的tag。

那么,问题就是如何把BT的链接或者电驴的链接缩短,变成一个短链接。只要有一个电驴或者磁力下载的短链接网站,任何p2p的分享网站都将在twitter上复活,甚至由于RT的放大作用,下载速度还将相当的快。

好吧,另外又出现一个问题,就是有中心就可能被封禁。只有完全的P2P才是不可封锁的。也就是说,如果封锁掉一个电驴短链接网站或者磁力下载短链接网站,就跟关掉verycd之类的一样。

再次重述一次问题:需要一个通用的,p2p下载链接的缩短服务。

下面是方案:
设有自有网站a(1).com,其上建立有短链接服务。
比如,要缩短magnet:?xt=urn:btih:R2FTZQGMR55K4D25EKVLF4DWCF4RQK24
调用goo.gl的API
POST https://www.googleapis.com/urlshortener/v1/url
Content-Type: application/json
{"longUrl": "http://magnet:?xt=urn:btih:R2FTZQGMR55K4D25EKVLF4DWCF4RQK24"}
注意,由于goo.gl只能缩短http,所以如果不是一个常规的http链接,而是magnet或者ed2k的链接,则加装一个http://的字符串帽子到前缀。
得到的结果应该是
{
"kind": "urlshortener#url",
"id": "http://goo.gl/eOPo0",
"longUrl": "http://magnet:?xt=urn:btih:R2FTZQGMR55K4D25EKVLF4DWCF4RQK24"
}
于是取出eOPo0,生成a(1).com/eOPo0

展开的过程相反,发现a(1).com/eOPo0的输入,调用goo.gl API
GET https://www.googleapis.com/urlshortener/v1/url?shortUrl=http://goo.gl/eOPo0
得到的结果是
{
"kind": "urlshortener#url",
"id": "http://goo.gl/eOPo0",
"longUrl": "http://magnet:?xt=urn:btih:R2FTZQGMR55K4D25EKVLF4DWCF4RQK24",
"status": "OK"
}
然后,取出longUrl. 发现http://magnet或者http://ed2k时,删除http://,否则不管

运行同一个程序的服务器a(2).com,由于采用同样的算法。所以a(2).com/eOPo0
也仍然会指向或者返回magnet:?xt=urn:btih:R2FTZQGMR55K4D25EKVLF4DWCF4RQK24
换句话说,如果服务器a(1),com由于种种原因无法访问,而知道服务器a(2).com的地址,就可以随时替换链接

有没有GAE的程序员呢?来帮我实现这个吧。