2008年3月31日

新宿御苑的樱花

作为日本的国花,樱花树确实种的到处都是(没印象中国的国花是啥?就算有好像也不很普及。省花、市花皆同)。要不是门外的几株提醒,或许我已忘记已然到了赏樱的季节。

天气预报说,周六日光尚好,周日有雨。由于担心坏天气会让樱花“雨打风吹去”,周六赶紧携妻抓上相机出了门。家离神代植物公园是最近的,只是我们上周末已去过一次,感觉平平,于是这次的目的地选在了新宿御苑。一来比较近,有月票可用;二来可以顺路逛街压马路扫日用百货电子产品。

这里贴几张小图,喜欢的朋友可以去我的 picasa 空间仔细观瞧。照片还在整理当中,会陆续补充一些的。







之前在北京玉渊潭也赏过樱,但远不如这番花团锦簇,怒放争春。还有就是公园里的古树令人叹为观止(类似年纪的树在国内似乎只在山区见过,城市圈里绝难找到),在东京这个被燃烧弹洗礼过的城市,能有这样的树幸存不能不说是一个奇迹。

2008年3月12日

intel 显卡在 linux 下的双头显示

最近在公司内部作报告,临场时因为双头显示搞了个手忙脚乱,还影响了报告效果。于是花了一些时间好好折腾了一下。在双头显示这个问题上,linux 秉承了一贯的风格,功能强大,但不够易用。以至于那些用惯了 MacOSX、Windows 的同事看我不按 Fn 而是在 terminal 里面敲 xrandr 的时候,显得很有些惊讶。

现在在 linux 下使用双头显示,归根到底是要搞清楚一个叫 xrandr 的东西。关于 xrandr 的介绍、使用,这篇文章应该是必读的(ThinkWiki……啊,ThinkPad 的用户真幸福)。这里贴上我的 xorg.conf 的相关部分:


Section "Monitor"
Identifier "Laptop Panel"
Option "DPMS" "true"
EndSection

Section "Monitor"
Identifier "External Monitor"
Option "DPMS" "true"
Option "PreferredMode" "1280x1024"
EndSection

Section "Device"
Identifier "Intel X3100"
Driver "intel"
VendorName "Intel"
BoardName "Mobile Intel® GM965 Express Chipset"
Option "MigrationHeuristic" "greedy"
Option "monitor-LVDS" "Laptop Panel"
Option "monitor-VGA" "External Monitor"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Intel X3100"
Monitor "Laptop Panel"
DefaultColorDepth 24
SubSection "Display"
Depth 16
Modes "1280x800" "1280x768" "1280x720" "1152x768" "1024x768" "832x624" "800x600" "640x480" "720x400" "640x400" "640x350"
Virtual 2560 2560
EndSubSection
SubSection "Display"
Depth 24
Modes "1280x800" "1280x768" "1280x720" "1152x768" "1024x768" "832x624" "800x600" "640x480" "720x400" "640x400" "640x350"
Virtual 2560 2560
EndSubSection
EndSection


我的笔记本用的是 Intel GM965 集成显卡。按照文档,965 之前的 Intel 集成显卡的 virtual screen 不能超过 2048x2048(这个在上面推荐的文章里提到过),虽说我的显卡正好不在此列,但是实际使用起来还是有些问题。比如当我将两个 1280 宽度的桌面横向摆放时,右侧那个的桌面无法完全正常显示:桌面似乎停留在了 2048 这个位置(壁纸无法延伸至 2048 以外,用鼠标拖出选择区也不能超出 2048),但是全屏窗口和上面板却可以正常显示。似乎某个地方仍旧受着 2048 的制约(我觉得这个问题将来应该会得到解决)。

虽然不影响正常功能(窗口可以显示),但是用到双头的场合,毕竟大都是比较正式的对外演示,残缺的壁纸总有些奇怪。于是当下比较好的办法是仍旧遵守 2048 规则,把第二个屏幕放到主屏幕的下面。

当然这样也还是稍微有点问题。比如 compiz fusion + avant window navigator 且后者为自动隐藏的情况下,avant window navigator 被显示在下屏幕的上部。所以在准备作双头显示之前,有必要先把 avant window navigator 干掉,我的办法是在 gnome 面板上留一个菜单式窗口选择器来应急。

最后就是写个脚本来简化启动 xrandr 时的输入了(xrandr 写全了真是够长的)。笔记本屏幕的分辨率是固定的,通常即使用双头的时候我也不希望改变主屏幕的分辨率(主要是 gnome 面板上的 applet 顺序有可能会乱掉),唯一需要指定的只是外接显示设备的分辨率。所以这个脚本也很简单:


#!/bin/bash

if [ $1 ]; then
RES=$1
else
RES="1280x1024"
fi

echo Set external VGA as $RES below LVDS.

xrandr --output LVDS --mode 1280x800 --output VGA --mode $RES --below LVDS


用的时候在脚本后面加个指示分辨率的参数就行了(不加的话默认是 1280x1024)。3D 桌面效果完全不影响双头显示,很帅很强大。

p.s. 刚刚看了下笔记本的官方参数,不知道为什么 fujitsu 写着“如果双头同时显示的话,最大分辨率不能超过 1280x768”。或许这是 vista 的限制吧。用 linux 的朋友虽然要经过上述“磨难”,但是可以不用理会这样的限制。

2008年3月5日

去掉 emacs 里面的 ^M

这是 \r\n 和 \n 之间的故事。故事很古老,有兴趣的可以翻墙啃啃 wikipedia 上的这篇文章

emacs 里面打开 windows 的文本,每行行尾都会显示一个 ^M,有伤大雅,看着别扭,影响思维等等罪名不一而足。如果这个事情和 emacs 无关,linux 下面专门有工具干这个事情,叫 dos2unix。

既然已经用 emacs 打开了,就懒得外部处理。可是 emacs 似乎没有专门为此设置的 function。

Google 搜出某邮件列表里的一封信,试了一下可用,于是写此短文以方便只看中文的懒人 :P

M-x replace-string C-q C-m RET