2009年08月06日 12:42
猛禽点了我的名。
规则:
1 - 把你的播放器(或mp3)打开 随机播放 (令狐注:因为条件限制,我个人修改了规则,修改后的规则在下面)
2 - 点”下一首”来获得每个问题的答案 (令狐注:同上)
3 - 你必须写下那首歌的名字无论看起来有多傻
4 - 在歌名后面的括号里写下自己的评论
5 - 点10个朋友
6 - 要提新问题
这个BT的游戏居然需要打开MP3播放器。我的电脑上一首像样的MP3都没有,没办法,只好求助于谷歌音乐的挑歌功能。
自定义的规则如下:随机选择节奏声调和音色,将出现的歌从左到右从上至下依次顺序排列,得到答案。如果歌曲已经用完则重复上述步骤。
OK,开始。
问题:
1.如果有人说:”这样行吗?” ——你回答“张学友-情网”(外交部风格。)
2.你怎样描述自己?——莫文蔚-广岛之恋(是说我很意识流么?)
3.你喜欢一个男孩/女孩什么? ——Beyond-冷雨夜 (月黑杀人夜,风高放火天,高,实在是高)
4.你今天的感觉怎么样?理由——张学友/汤宝如-相思风雨中 (切题,非常的切题)
5.生命的目的是什么?——孙燕姿-原点(嗯,很符合我的哲学)
6.你的座右铭是什么?——齐秦-不让我的眼泪陪我过夜(乐天,我们要乐天木糖醇)
7.你的朋友们怎么看你?——五月天-后青春期的诗 (你们真是这么看我的吗?)
8.你怎么看你的父母? ——甄妮/罗文-铁血丹心(……!!!!)
9.你经常考虑的事情是什么?——孙燕姿-我要的幸福(其实我真的没想这个……)
10.你怎么看待你最好的朋友?——张柏芝-星语心愿(…………)
11.你怎么看待你喜欢的人? ——甄妮/罗文-一生有意义(嘿嘿,我喜欢这个答案)
12.你生命的故事是什么?——王馨平-别我问是谁(我是神秘人物)
13.你长大后想成为什么?——许茹芸-不爱我放了我(呃……,这算什么?)
14.你的爱好是?——邓丽君-但愿人长久(我第一次知道我的爱好是做红娘 囧)
15.你最害怕的是?——邓丽君-千言万语(知道了吧,以后没事别跟我说废话)
16.你最大的秘密是?——许茹芸-天亮了(这个这个……)
17.当你看到喜欢的人会想到什么?——周迅-偶遇(……算切题吧)
18.婚礼的时候会挑哪首歌?——王菲-Di-Dar(好吧我真的没听过)
19.他们在你葬礼时放什么音乐?——王力宏-此刻你心里想起谁(怕了吧,怕了没有?)
20.你怎么看你的朋友? ——王啸坤-带我去寻找(嘿嘿,朋友要靠找滴)
21.你会把这篇问卷叫什么? ——达达乐队-南方(就是说只有南桥和老方才会想出这么BT的问卷)
22.此刻的心情感言是?——戴佩妮-透气(是该好好透透气了)
23.便秘了怎么办?——许志安-烂泥(这个……难道……莫非……呃……)
24.如果今天是世界末日,你会说什么? ——陈奕迅-歌颂(我是一个好五毛啊,世界末日还不忘歌颂)
25.描述一下发明这份问卷的人外表——Beyond-无语问苍天(哈哈哈哈哈)
26.你现在想什么?——姜玉阳-痛彻心肺(我自己都不知道自己有这么痛)
27.你最不愿意做的事情是什么?——张雨生-大海(好吧我承认我怕水)
28.请描述一下你今天的晚餐——戴佩妮-爱过(爱过的那是昨天的)
29.你昨天做了什么梦?——邓丽君-路边的野花不要采(春梦,这绝对是春梦……)
30. 如果你最大的心愿完成了会怎样?——邓丽君-我只在乎你(这答案太不BT了,拒绝评论)
31.如果你买彩票中了5000万会怎样?——孟庭苇-羞答答的玫瑰静悄悄的开(做人要低调……)
32.如果你被人甩了你会说什么?——张信哲-过火(其实大家不要误会,这是难过和发火的简称)
33.最近最快乐的事情是什么?——张国荣-倩女幽魂(这这这这这……)
34.周末打算干什么?——刘德华-情感的禁区(这算什么意思?)
补充问题
35.当你面对BT时,你的态度是什么?
开始点名:
没人了,不点了。
想玩的自愿报名。
2009年08月04日 13:47
Linux玩久了之后,在Windows下用不了很多优秀的命令行工具,就会感觉特别不爽。因此我一般都会在电脑上安装一套GNU utils for windows。最开始的时候,我用的是minGW里的utils,但是它附带的工具不全,虽然有一部分其他工具可以在其他地方google到,毕竟比较费神费力。
后来好好玩了一下Cygwin,开始喜欢上这个玩意儿了。以前一直以为cygwin就是开始菜单里启动的那个bash界面,后来发现其实不是,cygwin实际上是通过一个cygwin1.dll实现了几乎全部的UNIX函数,因此只要链接到这个dll,就可以很方便的port各种UNIX工具了。port出来的工具,也可以在DOS命令行下正常执行。
因为Cygwin的安装是集中式的,有点类似于apt机制,这很方便,不需要到处找各种各样的port了,只要从registry里安装就行。
于是我将绝大部分的命令行工具都通过cygwin安装使用,然后在PATH里填上cygwin/bin的路径就行了,非常方便。包括原来在Windows下单独安装的python、hg等工具,都换成了cygwin版本的。
但是最近在做一个工作上用的数据导入工具的时候,麻烦来了。
因为导入文件有可能是中文文件名,或者存在于中文路径中,我发现一旦涉及中文,cygwin版的python输出就是乱码,后来进一步发现,python里直接输出的中文也是有问题的。
然后,我联想到使用cygwin命令的时候,对中文的处理也是不尽人意的,比如ls如果碰到中文文件名,就会输出成一堆问号。
这次我想干脆将这些问题一起搞定。
于是就开始了找资料之旅。
网上很多处理cygwin中文的资料,都是针对bash的,然而我对cygwin的使用,在绝大部分情况下都不涉及bash。因此肯定要寻求其他途径。
然后又找到一个日本人改造的cygwin的utf8版。这个倒是有用,不过他做的是1.5版的cygwin,而我现在使用的是1.7beta版的。降级,这个事情我可有点不甘愿。先放着吧,实在不行再采取这个方案。
google了一大圈无果,今天突然想起来去cygwin的官方网站瞧瞧。没想到这一瞧还真有收获,在1.7版的new feature中,赫然写着
To always have a valid string, use the UTF-8 charset by setting the environment variable $LANG, $LC_ALL, or $LC_CTYPE to a valid POSIX value
以及
A lot of character sets are supported now via a call to setlocale().
The setting of the environment variables $LANG, $LC_ALL or $LC_CTYPE will be used.
于是兴冲冲的在命令行下输入: set LC_ALL=zh_CN.GBK,然后再输入 ls,熟悉的中文文件名终于出现在了眼前。真简单,不是么?
在第一个胜利的鼓舞下,我再接再厉,设置好LC_ALL之后输入python,然后尝试在一个中文路径中 import os; print os.getcwd() ,果不其然,我得到了…………一堆乱码 囧。
为什么locale对python程序无效呢?难道python有特别的设置?再找资料,在python的locale module一节看到了一段话:
Initially, when a program is started, the locale is the C locale, no matter what the user’s preferred locale is. The program must explicitly say that it wants the user’s preferred locale settings by calling setlocale(LC_ALL, '').
翻译过来就是,当一个程序启动的时候,locale一定会被设置成C,无论你在环境里的设置是什么。如果需要使用环境设置,你必须显式的调用 locale.setlocale(locale.LC_ALL, '')
好吧,在我的程序里加上这一句,果然,中文路径的输出结果正常了。但是……,在程序里主动输出的信息仍然是乱码。而且当发生异常时,异常信息也是乱码。
经过一段胡折瞎腾,终于发现,当locale设置成zh_CN.GBK时,要将输出信息编码成UTF-8,输出才不会乱码。可是……,如果真这么改的话,用windows版的python运行时,信息又变成乱码了。我不能写这种跟运行环境相关的代码啊,毕竟像我这样用cygwin python的变态不会太多的。
于是继续找资料,直觉告诉我这个问题应该跟stdout的encoding有关,于是找这几个关键字:stdout、encode、codecs。经过一番努力,还真的找到了结果:我们可以根据locale来设定stdout的encoding:
import codecs
sys.stdout = codecs.getreader(locale.getpreferredencoding())(sys.stdout)
sys.stdin = codecs.getreader(locale.getpreferredencoding())(sys.stdin)
这样一来,就可以正常输出程序中书写的中文信息,而无需任何特殊转换了。
经过这样一番努力,基本上解决我99%的问题:cygwin的工具可以正常使用中文、python可以正常使用中文,异常信息中的中文也可以正常输出。现在唯一没有解决的就是,当异常没有被捕获时,traceback的输出信息里,中文路径依然是乱码,似乎没有被locale设定所控制。不过因为这一点并不影响我的使用,暂时先不管了。
总结一下,在cygwin以及cygwin python中正常使用中文的做法:
- 在“我的电脑”点右键,属性,高级,环境变量。增加一个环境变量 LC_ALL,值是zh_CN.GBK
- 打开命令行,这时cgywin的工具应该都可以正常使用了。
- 在我们的python程序开头增加这样一段代码:
#set locale environment
import locale
import codecs
locale.setlocale(locale.LC_ALL, '') #将环境中的locale设定沿用到python程序中
sys.stdout = codecs.getreader(locale.getpreferredencoding())(sys.stdout)
sys.stdin = codecs.getreader(locale.getpreferredencoding())(sys.stdin) #根据locale设置指定标准输入输出的编码
这样可以使得程序在native python和cygwin python中都没有中文问题(99%的情况下)。
另外要注意一点的是,在python程序中,对locale的改变请务必放在主程序中而不要放在module中,否则可能会造成module和主程序的locale设定混乱,引起不可预期的问题。在主程序中对locale的设定会自动沿用到各个module中的。