[点名游戏]谷歌音乐版

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时,你的态度是什么?

开始点名:

没人了,不点了。

想玩的自愿报名。

Cygwin 1.7版 中文问题的解决(99%)

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中的。

Design downloaded from free website templates.