my new blog is live

Since wordpress.com cannot be accessed from mainland China. I setup my independent blog at http://blog.binchen.org. This blog won’t be updated in the future.

Advertisements

有用的emacs快捷键

  • 列编辑C-x r t yourstring RET (参见How to do select column then do editing in GNU Emacs ?)
  • 记录当前位置到register中 C-r SPC (需安装better-registers.el,且要注释掉其中对快捷键’C-x r’的占用)
  • 跳转至某register, C-j (需better-registers.el)
  • Save frame configuration to register, C-r f (要求同上)
  • Comment current line, M-; (需qiang-comment-dwim-line)
  • Vist the next/previous error message, M-g M-n/M-p
  • find-tag/pop-tag-mark, M-./M-*

Perforce Tip: how to apply my default change to the release branch

Create the patch,

p4 diff -du -db main-branch/... > ~/mywork.patch

Go to the work directory of release branch.

cd dir-release-branch/

`p4 edit’ the files I want to patch under release branch. Please note,

  • `lsdiff’ is from the package `patchutils’.
  • `nosl’ will strip the slashes. It’s written by me.
cat ~/mywork.patch|lsdiff|nosl 5|p4 -x - edit

Patch the files and DONE!

patch -p5 < ~/mywork.patch

Here is the source code of nosl. I put it in my .bashrc

function nosl(){
  if [ -z "$1" ]; then
    echo "Usage: echo /hello/world|nosl num"
    echo "strip num leading slashes"
  else
    perl -pe "$n=$1;while($n>0){ $_=~ s/[^/]*/+//;$n--; }"
  fi
}

BTW, you could save all the trouble of Perforce by switching to Git.

用mintty作为cygwin的console

cygwin1.7在我的电脑上不能显示中文,已困扰我很久了.

今天才找到解决办法,只要安装mintty即可.

安装后在宽屏显示器上字可能比较小, 参考其手册缩放字体.

以下是我的cygwin.bat,

@echo off
chdir C:\cygwin\bin
set EDITOR=vi
set VISUAL=vi
REM shamelessly copied from git://github.com/justsoso8/dotfile.git
REM mintty installed which supports chinese
REM =======================================
@echo off
rem find cygwin roo directory one by one
rem disk c -> disk d -> disk e

:CYGWIN_C
if not exist c:\cygwin goto CYGWIN_D
set _cygwinroot=c:\cygwin
goto HAVECYGWIN

:CYGWIN_D
if not exist d:\cygwin goto CYGWIN_E
set _cygwinroot=d:\cygwin
goto HAVECYGWIN

:CYGWIN_E
if not exist e:\cygwin goto NOCYGWIN
set _cygwinroot=e:\cygwin
goto HAVECYGWIN

:NOCYGWIN
echo no cygwin installation found on disk C/D/E
pause
goto EOF

:HAVECYGWIN

set LANG=zh_CN.utf8
rem CONSOLE is sure to know this setting
rem and can display chinese very well
rem but look & feel & funcationality are not as good as mintty

REM select terminal one by one
REM mintty -> rxvt -> console

:MINTTY
set _termapp=%_cygwinroot%\bin\mintty.exe
if not exist %_termapp% goto RXVT
start %_termapp% /bin/bash --login -i
rem mintty has it's option to set as zh_CN.utf8
rem ignore the ${LANG} setting
rem and it appends @cjknarrow automatically
rem current solution is to "LANG=zh_CN.utf8 gvim ..."
goto EOF

:RXVT
set _termapp=%_cygwinroot%\bin\rxvt.exe
if not exist %_termapp% goto CONSOLE
set BGCOLOR=Black
set FGCOLOR=White

start %_termapp% -sl 2500 -fg %FGCOLOR% -bg %BGCOLOR% -sr -fn Courier-20 -geometry 80x25 -e /bin/bash --login -i
goto EOF

:CONSOLE
set _termapp=%_cygwinroot%\bin\bash.exe
start %_termapp% --login -i
goto EOF

:EOF
exit

用org2blog+emacs发表博客

我有兴趣开始写博,完全是因为我开始爱上emacs,以至有人说emacs的插件org2blog使的写博客非常高效,我就想试试.

我(计划)把所有的文章都放在一个org文件里(BTW,我爱死org-mode了,它本来是做计划管理和日志的,但事实上是无所不能),然后post sub-tree:

M-x org2blog/wp-post-subtree

要正常使用org2blog,必需安装最新的org-mode(我的版本为7.5,`M-x org-version’检查当前版本,警告,7.5不可靠,应升级到最新版本,我用从git服务器取得”d6aba4db”版本).

emacs(版本23.3.1)自带的org-mode太老,和最新的org2blog(<2011-04-12 二>的版本)不兼容.

org2blog安装步骤在上文的链接里都有,也可以参看Blogging with org2blog.

org-mode安装步骤见官方文档.

切.格瓦拉 阿根廷(Che: Part One),一部无聊的政治宣传片

剧情基本上就是记流水帐,从1955年卡斯特罗(Castro)等人在墨西哥城组织七·二六运动(26th of July Movement)开始,然后就是行军,袭击兵营,伏击战,救治伤员,做群众工作(给村民看病,演讲),处决违法军纪的士兵,最后是革命的高潮,切.格瓦拉(Che Guevara)和Camilo Cienfuegos夺取Las Villas省的首府Santa Clara,这是古巴革命最后一场战役,12小时后古巴独裁者巴蒂斯塔(Batista)离开了古巴. 当中穿插了卡斯特罗访问美国,在联合国做演讲,接受采访的片段.

电影的主要缺点是缺少人物性格刻画.格瓦拉的政治主张是什么(例如建立什么样的政府?)?他为何接受社会主义?他喜欢什么?不喜欢什么?他的性格有什么特点(不愿意在阿根廷做医生而去古巴参加革命的人很可能性格有不同于常人的地方)?这些电影中都没有提及.我看到的只有好人打坏人再加上一些战斗场面.

古巴政府和军队坏,因为电影中古巴革命者说Batista腐败.说古巴政府出卖国家利益给美国,例如古巴对美国的贸易逆差为10亿美元.还因为一些比较感性的镜头,比如古巴军队枪杀帮助游击队的平民.古巴军队的飞机轰炸攻入城市的革命者,杀伤了很多平民.古巴军队虐待俘虏.

说实话我认为这种对坏蛋的描写挺幼稚的.我感兴趣的是古巴革命爆发和革命队伍壮大的原因,对此电影没有做出合理的解释.

例如所谓古巴和美国的贸易逆差,我也可以从经济学解释为古巴需要从美国进口的货物多,可以出口给美国的美国人需要的货物少,这好像恰恰是”美国是世界最强大的发达国家的”的结果.当然”贸易逆差”可以是激发”民族主义”的借口,民族主义几乎是近现代革命的必备导火索.但是”贸易逆差”的这段戏导演仅处理为几个领袖间的闲谈,给我的印象就是领袖们私下的谈话缺乏逻辑思维,如果是通过给群众或士兵的演讲来表现的话,我就会认为卡斯特罗等人确实挺会激发(或操纵)大众的情绪.

电影中描写古巴军队残忍的场景很平庸,例如有一幕是一个平民跑来见格瓦拉,要求其部下离开他家,因为政府军要是发现叛军,会认为他通敌,把他全家杀死.我的理解是,从逻辑上来讲,这段镜头说明了政府军的反游击队战术很成功.如果导演想说明政府军是非正义的话,至少这和古巴革命没什么关系,因为在革命和战争中清洗通敌嫌疑分子是很常见的,是内战导致了清洗而不是反之.

其他类似场景我就不罗嗦了,本质上都一样,内战中常见的残酷行为如果一边倒地都列在政府军的头上,感觉太假了,没有说服力.而且这些行为古巴革命没有重要的因果联系(同样的事件也发生在美国,英国,法国,俄国内战上).

对好人的描写我怀疑是参考了我国早期的革命电影.电影的一开始,古巴军队在追捕逃亡的格瓦拉,导演拉了个惊慌失措的普通战士给格瓦拉作伴来衬托主角的镇定自若.接下,格瓦拉免费给村民看病,格瓦拉教文盲战士识字,格瓦拉英明神武,某个战士连发两发火箭炮都没有打中敌人的据点,格瓦拉说声”让我来”,夺过火箭炮一炮就打爆敌人据点.等等等等…

电影唯一的亮点是战争场面不错,挺火爆残酷的,我作为男性观众挺享受的.
Technorati Tags: , , , ,