2012年2月18日星期六

检查程序的python版本兼容性

从前有一家高科技公司,程序用python9写的,后来想升级到最新的python_mx,于是有个程序员写了个脚本来检查老程序能不能用新python运行:
>>
>> grep "^from" *.py | cut -d" " -f2 > /tmp/x
>>
>> grep "^import" *.py | cut -d" " -f2- >> /tmp/x
>>
>> cat /tmp/x | sort | uniq > /tmp/xx
>>
>> while read line; do python_mx -c "import $line"; done < /tmp/xx

他看到了满屏的ImportError和DeprecationWarning,然后就回家了

2012年2月12日星期日

凯立德刷K币

话说道高一尺魔高一丈。先从最弱的一个魔开始吧。

打开一个记事本,粘贴如下代码另存为kld.user.js,然后拖到Chrome或Firefox(Firefox需要安装GreaseMonkey插件)里。

然后在地址栏中输入:
即可获得10个K币:因为访问了个人空间。虽说打开了12个Tab,但是家园的规则是每天由于访问个人空间获得K币的上限=10。

当然,要提前弄好自动登录。为了不影响正常使用家园空间首页,只对加了"#3"无害后缀的网址做批量弹Tab了。

// ==UserScript==
// @name           KLD K coins
// @include        http://www.kldjy.com/home.php#3
// @run-at         document-end
// @description    open 10 space
// @version        1.0
// ==/UserScript==

function main() {
for(i=0;i<$("portal_block_80_content").children[0].children[0].children.length;++i)
{
window.open($("portal_block_80_content").children[0].children[0].children[i].children[0].href, "_blank")
}
}

var inject = document.createElement("script");

inject.setAttribute("type", "text/javascript");
inject.appendChild(document.createTextNode("(" + main + ")()"));

document.body.appendChild(inject);

2012年2月11日星期六

如果我的证明是正确的,就不需要任何其他形式的肯定

想健康并且不浮躁地活,看来必须读一点书了。

2012年2月3日星期五

2012年1月1日不是2012年的第一周

> $ date -d "2012-01-01 00:00:00" +%U

> 01

>

> but in "man date"

> %U     week number of year, with Sunday as first day of week (00..53)

>

> Is it a bug?

给gnu发了封信,得到了详尽的解答,长知识了。

 ISO 8601 是一个神奇的标准,它定义了周数应该怎样数。
美国人按直觉定义每年1月1日所在的周为一年的第一周,而欧洲人制定的标准 ISO 8601 则不然。
首先, ISO 8601 定义每周的第一天为周日,其次,如果一年的第一周天数没有过半,则归入上一年的最后一周,第一个天数过半的周才真的算一年的第一周。
POSIX提供了支持这个标准的实现,也给出了多种其他符合直觉的选择,info date仔细读一下,深了去了。
查了一下中国国标,也是按这个ISO定义的。