飞人刘翔

2008年8月18日,110米栏预赛,刘翔的比赛被分在最后的第六组,上午11时50分开始。

11时30分,美国名将特拉梅尔只跑了几步就熄火了,蹲在跑道边痛苦地捂着脸。有记者曾采访特拉梅尔,问他来中国是不是为了击败刘翔,给中国人来点刺激,特拉梅尔说“那正是我想做的”。但是运动员准备四年,就跑了这几步,的确是令人惋惜,而且这显然是特拉梅尔的最后一届奥运会了。

刘翔赛前进行了热身跨栏,就在跨过第三栏时,刘翔突然因跟腱疼痛,跪在地上。
准备起跑,鸟巢一瞬间突然冷却下来,这是一种令人期待的“静”。“啪”的一声鸣枪,有人抢跑,但是此刻的刘翔几乎是蹦这减速下来,一瘸一拐地回到起跑线。刘翔穿过起跑线,说了一个词语:跟腱
刘翔因伤退出了奥运赛场。

在赛前刘翔一直很低调,对于他的“腿伤”也一直是一个悬念,至今没有确切的答案。今天我们终于清楚,“腿伤”其实已经痊愈,出问题的是7年的旧伤,跟腱

根本没有计划去看110米栏的预赛,因为我觉得这是没有悬念的事情。虽然此前媒体奇怪的报道——一面某领导表示刘翔在训练中创造了不错的成绩,一面遮遮掩掩的表达伤势的不稳定——使我对刘翔能否在本次奥运卫冕成功并不乐观,但是我没有想到竟在第一枪退出比赛。

从客观上讲,一个运动员中途退赛是再正常不过的一件事,特拉梅尔也是在跨过了第一个栏之后明白身体不允许,而费力的避开后面的栏跪倒在地上,退出比赛的。然而刘翔,对于我们,对于我们中国人,亚洲人来说,有着更多的含义。他在雅典奥运会上夺得110米跨栏冠军,不但创造了一个奇迹,而且结束了一个时代。每个人都为他高兴、自豪。赛前的低调,亮相鸟巢,退场,带给了人们太大的冲击,各种理智、不理智,客观、不客观,褒奖、贬损的声音接踵而来。

我想,退赛的原因,首先,伤情突然加重,刘翔职业生涯这么多年,包括2004年雅典奥运会的冠军和去年八月世界田径锦标赛的冠军(所谓“第九道奇迹”),幸运是很重要的,幸运是多年的旧伤没有影响到他的发挥。然而今年却没有这么幸运了,我们看到了刘翔在赛场的表情,没有了以往那种充满自信的笑容,我们也看到了刘翔无奈的走出赛场的背影,为他惋惜,为他落泪。
其次,不得不说,舆论、我们给了他太大的压力,刘翔不能输,他只能去拿金牌,一块银牌意味着“失去了金牌”而不是“夺得了银牌”。

为什么在我们已经拿了35块金牌遥遥领先的情况下,大家还是那么在乎刘翔的这块金牌?因为大家都知道田径的短直道项目意味着什么,甚至可以说,如果没有刘翔的110米栏金牌,中国代表团本届奥运会的几十枚金牌堆积成的王冠上,就缺少了最大最亮的那一颗明珠。刘翔承担着13亿人的希望,也同时承担着13亿人的重压。

刘翔承载的是整个亚洲在短跑项目上一个奇迹,但我们的舆论的宣传过分的渲染了这个奇迹,神化是不好的,那会带来巨大的落差。
从起点,便应该全面的看待,我想包括我在内的大多数人在这之前都是不知道刘翔有七年的脚伤的。也有很多人不明白为什么“水泡磨破了,也没在意,然后水泡结茧,再磨破,再结,久而久之,深入肌肤,伤到骨膜了”,我想我们的宣传应该让我们了解一个真是的刘翔,而不是一个神化的刘翔,他的确创造了奇迹,创造了历史,但他也是人,像我们每个人一样,会受伤,会痛苦,会咬牙坚持,也可能会无奈的放弃。

如果说这种放弃是逃兵,是缺乏奥林匹克精神的,便是典型的神化的结果,神是不会做逃兵的,神是“有奥林匹克精神”的,神是会忍着伤痛走完110米的。有人说刘翔伤害了他的感情,他感觉“被骗”了,刘翔应该之前就宣布退赛,而不是在场上“作秀”之后走出赛场,我想,在忍受这伤痛的情况下走上赛场,“不到万不得已不会退赛”,这本身就是你所做不到的,而且我认为你是从黑市买了高价票的人。

刘翔的退赛对于全国人民来说都是一种考验,刘翔已经被我们(不正确的)作为了国家的名片,“看,这就是中国人!”,这是一种莫大的荣誉。然而这也意味着“他是不会(能)输的”,因为这是中国的形象。把一个运动员一次比赛的成败上升到了国家荣誉的的高度,这是不应该的。

看了刘翔退赛后的采访,很是敬佩他的心理,那种客观冷静的态度。

体育场上没有常胜将军,“要么那金牌,那么你出名发财大红大紫,要么就是狗熊懦夫,滚下神坛接受大家的指责唾骂”,这是一种多么病态的心理。刘翔现在仍然处在巅峰状态,如果能恰当治疗修养,摆脱伤病的困扰,仍能创造我们心中的“奇迹”,但是总会有一天他会退役,会离开我们的视线。如果刘翔职业生涯的最后一场比赛像特拉梅尔的最后一届奥运会比赛那样离开赛场,人们又会怎样看待呢?

mldonkey中文文件名问题

mldonkey在下载文件名包含中文的文件的时候会把中文替换成”_”(下划线),其实这不是mldonkey不能处理中文的问题,在很久以前mldonkey就加入了CJK文件名的处理,但是仍然出现替换为下划线的问题是由于mldonkey会检测当前用户的locale。

在Gentoo中直接使用sudo /etc/init.d/mldonkey start启动mldonkey是会以p2p用户的身份启动mldonkey的,我们需要在启动时正确设置locale

修改/etc/init.d/mldonkey文件,红色部分是新加入的。

cd "${MLDONKEY_DIR}"
export MLDONKEY_DIR
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
start-stop-daemon --start --chuid "${USER}" --nice "${NICE}" \
                --exec "${MLDONKEY_BINARY}" --pidfile /var/run/"${SVCNAME}".pid \
                --background --make-pidfile

这样在下载文件名包含中文的文件时就不会出现问题了。

Broadcom 43xx无线网卡驱动

内核驱动

Device Drivers -->
    Network device support -->
        Wireless LAN
             Broadcom 43xx wireless support (mac80211 stack)

Firmware
Broadcom网卡需要firmware(Broadcom拥有版权的闭源的程序)才能工作

sudo emerge b43-fwcutter

在http://linuxwireless.org/en/users/Drivers/b43#firmwareinstallation下载相应的firmware
解压firmware到/lib/firmware

export FIRMWARE_INSTALL_DIR="/lib/firmware"
cd broadcom-wl-4.150.10.5/driver
sudo b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" wl_apsta_mimo.o

加载驱动

sudo modprobe b43

多元单峰函数的极值问题

本文写给我自己,提醒自己不要再犯同样的错误。

求一个给定的多元函数f(x1, x2, …, xn)的最大值,且该函数是单峰的。
首先随便取一个点(尽量取得像那个解没有什么坏处……)P(x1, x2, …, xn),带入函数求出f(P),根据定义域适当选取初始delta。

While (delta > eps)
{
        for each i from 1 to n
        {
                let Q = (..., xi + delta, ..., xn)
                if (f(Q) > f(P)) let P = Q
                let Q = (..., xi - delta, ..., xn)
                if (f(Q) > f(P)) let P = Q
        }
        if (point P is not changed)
                let delta = delta / 2
}

红色部分是我经常忘记的部分,对于小规模的数据是有可能蒙到解的,但是数据规模变大了就会出问题。
算法复杂度为O(log(deltamax) * f函数的计算复杂度 * n),当然有可能有时不需要每次都计算f,而是计算改变xi导致的函数值的改变量从而提高速度。

Tencent QQ for Linux

腾讯果然出了linux版的QQ,下来.tar用了一下,果然功能很初级。

一时间各大网站纷纷放出“第一时间测评”,我这就不放截图了,刚刚用上,说说发现的一些东西。

首先就是那个~/.Tencent以及下面的所有东西都是777的,不知道腾讯怎么想滴……

在QQ同目录下有个ImEngine.cfg文件,看看里面有个DebugLevel,原来的值是0,我去改成了9(那个文件默认权限是544,首先弄成可写的……这个权限也很奇怪的,为什么要可执行呢?),当然可能更高也可以……

然后运行QQ可以看到console里面狂多输出,有

[Got]
-------------- Packet----------------
Id:             0xXX
Type:           XX
RetCode:        XX
Len:            XX
ParamsLen:      XX
-------------------------------------

这种东西,还有很多十六进制的东东。兴许对于分析协议有些帮助吧呵呵~

Update(2008-08-01):后来TX又放了一个新版本上去,去掉了ImEngine.cfg这个文件,并且其他三个文件均和原来不一样。

转换ape到flac

在Linux下很多播放器都不支持ape+cue的播放,转换为flac的方法:

安装需要的软件

emerge shntool mac-port flac

其中mac-port需要gentoo-china overlay

layman -fa gentoo-china

mac-port是pae格式的解码器
flac是flac格式的编解码器

安装好以后使用下面的命令转换:

shntool split -f music.cue -t '%n.%t' -o flac music.ape

其中split -f music.cue是指按照music.cue分割文件
-t '%n.%t'是分割以后的文件的命名规则,%n是曲目的序号,%t是曲目的标题
-o flac表示输出flac格式
最后的musci.ape就是需要转换的ape文件了

P.S.: music.cue最好按照utf8编码,否则可能出现乱码。

转换不带cue单曲ape可以直接

shntool conv -o flac music.ape

关于Gentoo的编译参数优化

CFLAGS

  • -pipe在编译的不同阶段使用管道而不是临时文件,强烈推荐
  • -march这个根据自己的CPU选择一下,可以man gcc看一看,当然如果你发现你的版本的gcc已经支持-march=native了就不用费心仔细看自己的CPU叫什么名字了,直接用native就可以了
  • -fomit-frame-pointer不在寄存器(x86一般就是ebp吧)里保存frame pointer,这会导致无法调试,如果不需要调试的话建议打开,这个好像如果打开会无法无法调试那么默认是不在-O中打开的

LDFLAGS
注意LDFLAGS要在参数前加-Wl,,像这样:-Wl,-O1 -Wl,--as-needed

  • -O1优化开关,就像gcc的O2, O3一样,不过目前O后面的数只支持0和大于0的数,相当于只有优化和不优化两档
  • --as-needed这个开关是有危险性的,可能导致某些软件无法正常编译,而且是不被官方支持的。具体可以看这里
  • --sort-common这个就是给符号排个序以减少gap,推荐
  • --strip-all去除所有符号信息
  • --relax很危险,自己选择

nail (mailx) 使用外部SMTP服务器配置

/bin/mail会默认使用本地sendmail发送邮件,而通过修改配置文件可以使用外部SMTP服务器

修改/etc/nail.rc (/etc/mail.rc)

set from=emailAddress smtp=SMTPServer
set smtp-auth-user=username smtp-auth-password=password
set smtp-auth=login

其中emailAddress是你的邮箱地址,这个就是显示在发件人位置的东西
SMTPServer是SMTP服务器比如smtp.126.com
username, password用户名,密码

可以发送一封邮件测试一下:

mail -s "Test Email" user@gmail.com <email.txt

其中-s后面的是邮件标题,user@gmail.com是收件人地址,email.txt里面是邮件正文,更多选项请man~