星期一, 三月 12, 2012

python pelican博客系统

上次是ruby,这次是python。
pelican 是一个可以把rst文件生成静态博客页面的工具。 静态页面的好处是可以随便扔到哪里, 例如, github提供了 pages 服务.

星期日, 三月 11, 2012

使用 octopress + github page服务搭建博客

Octopress

http://lucifr.com/2011/11/23/bye-bye-wordpress-hello-octopress/

什么是 Octopress

简单来说 Octopress 是一个基于 Jekyll 的静态博客站点生成系统,它很大程度上简化了用 Jekyll 搭建博客的过程。不同于 Wordpress 这样的动态博客,它可以将一个模板目录(原始状态的网站)经过 MarkdownLiquid 转换,在本地生成一个完整的静态网站,再通过 git 或是 rsync 很方便的部署到 GithubHeroku 或是自建的服务器上。

Octopress 的优势

对于 Lucifr 来说,Octopress 之所以诱人,主要是因为以下几个方面:
  1. 网站搭建很方便
    这个方便当然是相对的,如果对 Git 和 Ruby 很熟悉的话会发现建个 Octopress 太容易了,几行命令就搞定了。没有自己的主机也没关系,部署到 Github 和 Heroku 都是不错的选择。
  2. 写文章很方便:原生支持 Markdown 语法和各种嵌入插件
  3. 发文章很方便:书写 -> 自动生成 -> 部署
    不同于 Wordpress 的文章发布方式,因为 Octopress 是在本地静态化后再通过 Git 或 rsync 部署,因此在 Octopress 中发文章只要终端中运行 rake watch,挑选自己惯用的文本文本编辑器以纯文本的形式(Markdown)写好文章,再 rake deploy 就轻松部署到服务器上。配合 POW 可以很方便的在本地进行预览。
  4. 改主题很方便:Compass 和 Sass
    不必再一行行的改 CSS 了,用 Sass 可以很语义化的书写样式,而 Compass 会监视 Sass 的变化并生成相应的 CSS 文件,同样的配合 rake watch 和 POW 就可以在本地预览主题的变化。
    值得一提的是 Octopress 默认的主题本身就质量很高,尤其是可随分辨率自适应的 Responsive 布局,很对 Lucifr 的胃口。
  5. 不用折腾很方便:内建多个第三方服务
    Octopress 已经内置了 Twitter、Pinboard 书签、Disqus 留言系统、Google Analytics 统计等多个模块,只需要到 _config.yml 中填入相应的信息就可以轻松配置,免去很多麻烦。

Octopress 适合哪些人

经过上面的介绍,不难发现 Octopress 是个很适合开发者使用的博客系统,如果你之前就一直在使用 git,对 ruby 很熟悉,那么会发现上手很快;抑或像 Lucifr 这样什么都不懂但有受虐的决心,读英文文档没什么问题,那么也是可以折腾的,否则还是踏实的用 Wordpress 吧。

Octopress: a blogging framework for hackers

安装部署参考官方文档或下面

http://lyhdev.com/note:octopress

Installing

先安裝 rvm
bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
將 rvm 指令變成 shell function
echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
source ~/.bash_profile
安裝 Ruby 1.9.2, RubyGems
rvm install 1.9.2 && rvm use 1.9.2
rvm rubygems latest
確認版本
ruby --version
下載 octopress 專案
git clone git://github.com/imathis/octopress.git octopress
cd octopress
安裝 bundler
gem install bundler
bundle install
安裝預設佈景
rake install

發佈到 GitHub (免費)

先建立 GitHub Repository ,並使用 username.github.com 命名(如果是組織則用 organization.github.com), 例如你的 GitHub 帳號是 john2011 就將 Repository 命名為 john2011.github.com, 完成後會得到一組 GitHub Pages URL http://yourname.github.com/ (注意不能用 https: 必須用 http: )。
設定 GitHub Pages
rake setup_github_pages
以上執行後會要求 read/write url for repository :
git@github.com:yourname/yourname.github.com.git
建立及發佈
rake generate
rake deploy
等待幾分鐘時間,會收到一封信:「[sslab.github.com] Page build successful」,第一次發佈會等比較久,之後每次都會直接更新。
瀏覽 http://yourname.github.com/
將 source 也加入 git
git add .
git commit -m 'initial source commit'
git push origin source

更新 Octopress

日後有 Octopress 新版本發佈,使用以下指令升級。
git pull octopress master     # Get the latest Octopress
bundle install                # Keep gems updated
rake update_source            # update the template's source
rake update_style             # update the template's style

常用指令

建立新文章
rake new_post["how-to-install-octopress"] 

常用語法

程式碼區塊
``` groovy
println 1+2+3
```

为已经存在的github octopuses配置本地环境

http://huanggang.me/archives/667

主题

http://zespia.tw/Octopress-Theme-Slash/index_tw.html

星期四, 十二月 29, 2011

在 Ubuntu 11.10 中安装 Linux Deepin translucency Gnome-shell theme

来源:
http://ubuntuguide.net/install-linux-deepin-translucency-theme-in-ubuntu-11-10-gnome-shell

Linux Deepin 是一个源自中国的 Ubuntu 定制发行版,刚刚发布 11.12 beta。它定制了一个 translucency gnome-shell theme。下面我们在 Ubuntu 11.10中安装这个主题,本方法同样试用于其它发行版。

1. 安装 git

sudo apt-get install git
mkdir git-project &&cd git-project

2. 下载 deepin-gs-theme 和 lazycat-gs-theme

git clone git://github.com/manateelazycat/deepin-gs-theme
git clone git://github.com/manateelazycat/lazycat-gs-theme
git clone git://github.com/manateelazycat/DGSE.git

3. 把上述 themes 移动到 ~/.themes

mv deepin-gs-theme/ ~/.themes/
mv lazycat-gs-theme/ ~/.themes/

把 DGSE 移动到 /usr/share/gnome-shell/extensions/

sudo mv DGSE /usr/share/gnome-shell/extensions/

4. 安装 Gnome Tweak Tool, 启用 theme and DGSE

sudo apt-get install gnome-tweak-tool

要切换主题,需要安装 gnome-shell-extensions-user-theme

sudo add-apt-repository ppa:webupd8team/gnome3
sudo apt-get update
sudo apt-get install gnome-shell-extensions-user-theme

两个 Ubuntu / Linux 截图工具

1. Area Screenshot

或许你已经使用过 GNOME Shell 默认屏幕录像工具(CTRL+ALT+SHIFT+R),那么也可以体会下这款提供高级截图功能的 GNOME Shell 扩展 Area Screenshot。
前往 Shell Extensions 即可安装 Area Screenshot,非常简单。
之后需要额外配置下快捷键,这里以推荐的 SUPER+PRINT (常见键盘上 SUPER 即是 WIN 键)为例:

key='/apps/metacity/global_keybindings/run_command_10'
gconftool-2 -s --type string "$key" 'Print'

之后当按下 SUPER+PRINT 组合键的时候就进入截图模式了。此时可以拖拽出一个矩形区域松开鼠标即可完成截图。亦可按下数字键 1 ~9启动倒计时器,代表等待 1~9 秒后再进行截图,过程中会在左下角读秒,从而实现对于普通截图工具做不到的弹出菜单截图。若再次按下 0 则关闭倒计时器。

截图默认保存在 $HOME/Pictures 目录下。

此外在截图完毕后还会尝试运行位于 $HOME/bin/ 下的名为 area-screenshot-post 的 Bash 脚本 ,于是可以自由定义截图后的行为

项目 Github 首页

2. 深度截图(deepinScrot)

update: 在下面找最新版的deb包

http://mirrors.ustc.edu.cn/deepin/pool/main/d/deepin-scrot/

首先,确保系统已经安装 python-Xlib 库文件和 pyhon-gtk2。如果您的系统还没有安装这两个文件,可以通过下面命令安装:


sudo apt-get install python-xlib python-gtk2
 
同时,下载深度截图源码包:

git clone git://github.com/lovesnow/deepin-scrot.git
 
下载完毕之后,切换到deepin-scrot 目录,然后在终端执行下面命令启动截图工具:

cd ./src && chmod 755 deepinScrot.py
./deepinScrot.py

星期五, 十一月 11, 2011

Sublime Text 2:编辑器新秀


主页:http://www.sublimetext.com

跨平台:windows / Linux / Mac OS

插件采用python语言开发,目前主程序和插件开发进展很快,目前已经足以作为一个强大的脚本开发 / Web开发 IDE 。

插件包控制 Sublime Package Control

按Ctrl+` 启动Sublime Text 2 console,输入如下回车安装package manager

import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp) if not os.path.exists(ipp) else None;open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())

推荐插件

python类

1. 代码导航


I) Sublime Code Intel 插件提供代码补全与函数跳转功能。

    Code intelligence plugin ported from Open Komodo Editor to the Sublime Text 2 editor.

    Supports all the languages Komodo Editor supports for Code Intelligence (CIX, CodeIntel2): PHP, Python, RHTML, JavaScript, Smarty, Mason, Node.js, XBL, Tcl, HTML, HTML5, TemplateToolkit, XUL, Django, Perl, Ruby, Python3.

II)SublimeRope: Python Completion and GotoDefinition plugin using Rope


2. 代码检查 Python PEP-8 and PyFlakes checker


 
I) SublimeLinter

II) sublimetext_python_checker

This project is a plugin for SublimeText 2 text editor. It checks all python files you opening and editing through two popular Python checkers - pep8 and PyFlakes.

https://github.com/vorushin/sublimetext_python_checker

代码中使用个某个函数却忘记import 相应模块怎么办?python 中的模块 mr.igor 可以自动添加 import 语句。这个 Sublime Text 2 插件可以让它在 Sublime Text 2 工作。

Package Control Add URL https://github.com/optilude/SublimeTextIgorPlugi


Ruby

https://github.com/maltize/sublime-text-2-ruby-tests

https://github.com/SublimeText/RSpec

Sublime Guard

C/C++

CTags/Cscope 经典

clang (C/C++/Objective-C/Objective-C++) autocomplete http://github.com/quarnster/SublimeClang


Web Dev

Zen Coding

    Zen Coding is an editor plugin for high-speed HTML coding and editing. The core of this plugin is a powerful abbreviation engine which allows you to expand expressions—similar to CSS selectors—into HTML code.


    This is a great plugin when you’re working with a lot of markup. Tag is a collection of packages about, predictably, tags, mixed together in an effort to provide a single package with utilities to work with tags. Close a tag on a slash and tag indenting? Sign me up!


    This plugin collection includes plugins to fold your code according to brackts, cycle through selecting tags and many more.


    And where will all us be without jQuery? This is a Sublime Text bundle to help with jQuery functions.


    JsFormat is a javascipt formatting plugin for Sublime Text 2. It uses the commandline/python-module javascript formatter from JS Beautifier to format the selected text, or the entire file if there is no selection.


    It’s a good practice to always minify your files during deploying to a production server. And this plugin will swiftly automate the process by minifying your JavaScript using the Google Closure Compiler or UglifyJS compilers.
 
JsLint可由 SublimeLinter 插件实现


    DocBlockr is a Sublime Text 2 package which makes writing JSDoc comments and PHPDoc comments a breeze.


    A plugin that runs CSS through the Prefixr API, written by our very own Jeffrey Way, for Sublime Text 2.


    Tired of constantly having to manually convert your colors’ hexcodes to HSL? This plugin will automatically do it for you with the press of a button. Well, ok, three buttons. [Shift+Ctrl+U]

4. General Program
版本管理 sublime_tortoise / Git


    I’m quite a stickler for properly formatted code. One thing to get right is lining up all those darn variable assignment so they look all organized and neat. With this plugin, all it takes is the press of key. A simple key-binding allows you align multi-line and multiple selections.

SublimeREPL

    Run your favorite interpreter [python, ruby, lua, prolog :)] or Telnet session to an external tool (MozRepl) inside a Sublime buffer.


    DetectSyntax is a plugin for Sublime Text 2 that allows you to detect the syntax of files that might not otherwise be detected properly. This is specially helpful when you run into custom file formats — files used in templating is an excellent example.


    Case conversion is a plugin for Sublime Text 2. It converts the current word/token between pascal, camel, and snake case.

5. Others

EncodingHelper 编码转换

sublime-gbk

RegReplace Plugin

SublimeFileTemplates

SFTP 远程开发

HexViewer

SideBarEnhancements

Tips

1. vim模式

Preferences/Global Settings – Default

"ignored_packages": ["Vintage"] --> "ignored_packages": []

or try this plugin: https://github.com/SublimeText/VintageEx

2. 设置字体

Preferences > File Settings – User

{
"font_face": "Meslo LG S DZ",
"font_size": 10,
}

3. Fuzzy Finder (Go to Anything)

CTRL+P (fuzzy finder)

4. Multi Selection: awesome

按住Ctrl,选择吧

You Can Still Use TextMate Bundles

TextMate snippets and themes port over nicely to Sublime Text. You only need to drop them in the Packages folder — .tmbundle extension intact, and Sublime will recognize the files. This means that the entire catalog of TextMate themes will work in Sublime!

参考:

星期一, 十一月 07, 2011

Vim代码补全与浏览(vim code completion/navigation)

vim本身的补全功能对于c++来说还有明显不足,在大项目中使用ctags建立索引的效率一直是为大家诟病的地方,而且ctags autocompletion does NOT work for boost shared pointers。有人开发了利用编译器(clanggccsense)生成的AST (Abstract Syntax Tree)来进行代码分析,目前已经有人开发出了emacs、vim、gedit 的 code assistance 插件。

vim插件 clang_complete,可以用来进行代码补全,但是没有代码跳转功能。(update:原版的clang_complete正在开发函数跳转功能,但是要求clang version >= 3.0)

于是又有人开发了 CLIC – the Clang Indexer for C/C++,这里是作者在博客中的介绍

1. 建立索引

$ git clone git://github.com/exclipy/clang_indexer.git
$ cd clang_indexer
$ mkdir build
$ cd build
$ cmake ..
$ make
 
得到三个二进制文件: clic_add, clic_rm and clic_clear,把它们放到PATH中。并不直接使用这三个命令,而是用项目根目录中的clic_update.sh,这个脚本唯一的参数是你的工程源码目录,示例如下

$ mkdir ~/src/project-index 
$ cd ~/src/project-index 
 $ clic_update.sh ~/src/project

会生成一个index.db索引文件。

2. 在vim中进行代码补全和跳转

需要对原来 Rip-Rip  clang_complete plugin 进行修改,这是作者的改版 a fork of clang_complete.

$ git clone https://github.com/exclipy/clang_complete.git 

.vim推荐设置

let g:clang_auto_select=1
let g:clang_complete_auto=0
let g:clang_complete_copen=1
let g:clang_hl_errors=1
let g:clang_periodic_quickfix=0
let g:clang_snippets=1
let g:clang_snippets_engine="clang_complete"
let g:clang_conceal_snippets=1
let g:clang_exec="clang"
let g:clang_user_options=""
let g:clang_auto_user_options="path, .clang_complete"
let g:clang_use_library=1
let g:clang_library_path="/directory/of/libclang.so/"
let g:clang_sort_algo="priority"
let g:clang_complete_macros=1
let g:clang_complete_patterns=0
nnoremap >Leader>q :call g:ClangUpdateQuickFix()

let g:clic_filename="/path/to/index.db"
nnoremap >Leader>r :call ClangGetReferences()
nnoremap >Leader>d :call ClangGetDeclarations()
nnoremap >Leader>s :call ClangGetSubclasses()
 
在源码目录新建 .clang_complete 文件,写入 clang/libclang 参数,示例:

-I/opt/local/include
-I/opt/local/include/db52
-std=c++0x

附1:用tab补全类属性时与snipMate冲突

myclass. turns to: myclass[]

snipMate/snippets/c.snippets 最后两行

snippet .
    [${1}]${2} 
 
注释掉

# snippet .
#     [${1}]${2} 

附2:预编译

clang/libclang都是实时编译的,所以效率可能会有问题,尤其是当代码非常多的时候。创建一个头文件,然后include你的那些文件,然后调用clang预编译一下。

pchheader.h内容

#include 
#include 
#include 
......

预编译
clang -x c++-header ./pchheader.h -fno-exceptions -fnu-runtime -o ./pchheader.pch

添加到.clang_complete
echo '-include-pch pchheader.pch -fgnu-runtime' >> .clang_complete 

附3:ubuntu 中 libclang.so 问题

参见此 bug

星期三, 八月 11, 2010

龙应台:文明的力量,从乡愁到美丽岛(无删减版)zz

 北大学生很反动啊 听录音到龙应台展示中华民国秋叶海棠图 居然引起北大学生群起鼓掌啊

这是视频

http://www.youtube.com/watch?v=zLesuEsjbHU&feature=related


龙应台:文明的力量,从乡愁到美丽岛大陆删改
龙应台:文明的力量,从乡愁到美丽岛大陆删改对比




龙应台:文明的力量:从乡愁到美丽岛

我们的「中国梦」

第一次接到电话,希望我谈谈「中国梦」的时候,我的第一个反应是: 「一千枚飞弹
对准我家,我哪裡还有中国梦啊?」

可是沉静下来思索,一九五二年生在台湾的我,还有我前后几代人,还真的是在「中
国 梦」裡长大的,我的第一个中国梦是什麽呢?

我们上幼稚园时,就已经穿着军人的制服、带着木製的步丄枪去杀「共丄匪」了,口
裡唱着 歌。当年所有的孩子都会唱的那首歌,叫做《反攻大陆去》:


反攻   反攻   反攻大陆去
大陆是我们的国土
大陆 是我们的疆域
我们的国土   我们的疆域
不能让共丄匪尽着盘据
不能让俄寇尽着欺侮
我们要反攻回去   我们要反攻回去
反 攻回去   反攻回去
把大陆收复 把大陆收复



这不是一种「中国梦」吗?这个梦其实持续了满久,它是一个至高无上 的图腾,也被
人们真诚地相信。

仓皇的五十年代进入六十年代,「中国梦」持续地深化。余光中那首《乡愁四韵》传
颂一时:

给 我一瓢长江水啊长江水
那酒一样的长江水
那醉酒的滋味是乡愁的滋味
给我一瓢长江水啊长江水
给我一掌海棠红啊海棠红
那 血一样的海棠红
那沸血的烧痛是乡愁的烧痛
给我一掌海棠红啊海棠红

一九四九年,近两百万人突然之间被残酷的内战连根拔起, 丢到了一个从来没有去过
、甚至很多人没有听说过的海岛上。在战火中离乡背井,颠沛流离到了岛上的人,思
乡之情刻骨铭心,也是无比真诚的。 那分对中华故土的魂牵梦绕,不是「中国梦」吗


梦的基座是价值观

我的父母那代人在一种「悲愤」的情结中挣扎着, 我这代人在他们乡愁的国家想像中
成长。但是支撑着这个巨大的国家想像下面,有一个基座,垫着你、支撑着你,那个
基座就是价值的基座。

它 的核心是什麽?台湾所有的小学,你一进校门门当头就是四个大字:「礼义廉耻」
。进入教室,简朴的教室里面,牆壁上也是四个大字:「礼义廉耻」。如 果一定要我
在成千上万的「格言」里找出那个最基本的价值的基座,大概就是这四个字。

小的时候跟大陆一样,四周都是标语,只是内容 跟大陆的标语不一样。最常见到的就
是小学裡对孩子的解释:


礼,规规矩矩的态度。
义,正正当当的行为。
廉, 清清白白的辨别。
耻,切切实实的觉悟。


上了初中,会读文言文了,另一番解释就来了:


礼义廉 耻,国之四维,四维不张,国乃灭亡。——管仲

然而四者之中,耻尤为要。人之不廉而至于悖礼犯义,其原皆生于无耻也。故士大夫
之 耻,是为国耻。——顾炎武


「士大夫之耻,是为国耻」,这些价值在我们小小的心灵有极深的烙印。

二○○六年,上百 万的「红衫军」包围总统府要求陈丄水扁下台,台北的夜空飘着大
气球,一个一个气球上面分别写着大字:「礼」,「义」,「廉」,「耻」。我到广
丄 场上去,抬头乍看这四个字,感觉好像是全台湾的人到这广丄场上来开小学同学会
了。看着那四个字,每个人心领神会,心中清晰知道,这个社会在乎的是 什麽。

除了价值基座,还有一个基本的「态度」。我们年纪非常小,可是被教导得志气非常
大,小小年纪就已经被灌输要把自己看成 「士」,十岁的孩子都觉得自己将来就是那
个「士」。「士」,是干什麽的?


士不可以不弘毅,任重而道远。仁以为己任,不亦 重乎?死而后已,不亦远乎?~论
语泰伯篇


我初中一年级的国文老师叫林弘毅,数学老师叫陈弘毅。同时期大陆很多孩子可能叫
「爱 国」、「建国」,我们有很多孩子叫「弘毅」。我们都是要「弘毅」的。

对自己要期许为「士」,对国家,态度就是「以国家兴亡为己任,置个人 生死于度外
」。这是蒋介石的名言,我们要背诵。十一二岁的孩子背诵这样的句子,用今天的眼
光看,挺可怕的,就是要你为国家去死。

然 而在「国家」之上,还有一句:


为天地立心,为生民立命,为往圣继绝学,为万世开太平。——张载


对那麽小 的孩子也有这样的期待,气魄大得有点吓人。饶有深意的是,虽然说以国家至上,但是事实上张载所说的是,在「国家」之上还有「天地」,还有「生民」,它其实 又修正了国家至上的秩序,因为「天地」跟「生民」比国家还大。

十四岁的时候,我第一次读到《国语》,《国语》是两千多年前的经典了, 其中一篇让我心里很震动:


厉王虐,国人谤王。召公告曰:「民不堪命矣!」王怒,得卫巫,使监谤者。以告,则杀之。国人莫敢言,道 路以目。王喜,告召公曰:「吾能弭谤矣,乃不敢言。」召公曰:「是障之也。防民之口,甚于防川,川壅而溃,伤人必多。民亦如之…」

王不 听,于是国人莫敢出言。三年,乃流王于彘。


最后一句,简单几个字,却雷霆万钧,给十四岁的我,深深的震撼。

就 是这个价值系统,形成一个强固的基座,撑起一个「中华大梦」。

我是谁?

这个中国梦在一九七○年代出现了质变。

一 九七一年中华民国被迫退出联合国,台湾人突然之间觉得自己变成了孤儿。可是,最坏的还没到,一九七九年一月一号,中美正式断交,这个「中」指的是当时的中 华民国,也就是台美断交,中美建交。长期被视为「保护伞」的美国撤了,给台湾人非常大的震撼,觉得风雨飘摇,这个岛是不是快沉了。在一种被整个世界抛弃了 而强敌当前的恐惧之下,救亡图存的情感反而更强烈,也就在这个背景下,原来那个中国梦对于一部分人而言是被强化了,因为危机感带来更深更强的、要求团结凝 聚的民族情感;大陆人很熟悉的《龙的传人》,是在那样的悲愤伤感的背景下写成的。这首歌人人传唱,但是一九八三年,创作者「投匪」了,歌,在台湾就被禁掉 了,反而在大陆传唱起来,情境一变,歌的意涵又有了转换。

你们是否知道余光中《乡愁》诗里所说的「海棠红」是什麽意思?


我 们从小长大,那个「中国梦」的形状,也就是中华民国的地图,包含外蒙古,正是海棠叶的形状。习惯这样的图腾,开始看见中华人民共和国地图的前面好几年,我 都还有种奇怪的错觉,以为,哎呀,这中国地图是不是画错了?

一九七○年代整个国际情势改变,台湾的「中国梦」开始有分歧。对于一部分人而 言,那个「海棠」中国梦还虔诚地持续着,可是对于另外一部分人就不一样了。

梦,跟着身边眼前的现实,是会变化的,一九四九年被连根拔起 丢到海岛上的一些人,我的父母辈,这时已经在台湾生活了三十年,孩子也生在台湾了—这海岛曾是自己的「异乡」却是孩子的「故乡」了,随着时间推移,无形之 中对脚下所踩的土地产生了具体而实在的情感。所以,你们熟悉余光中先生写的那首《乡愁》,却可能不会知道他在一九七二年的时候创作了另外一首诗,诗歌礼讚 的,是台湾南部屏东海边一个小镇,叫枋寮:


车过枋寮
雨落在屏东的甘蔗田裡
甜甜的甘蔗   甜甜的雨
从此 地到山麓 一大幅平原举起
多少甘蔗,多少甘美的希冀
长途车驶过青青的平原
检阅牧神青青的仪队


余先生这首 诗,有「中国梦」转换的象徵意义。但是今天想跟大家分享的,还有一首我称之为「里程碑」的歌,叫《美丽岛》。

一位澹江大学的年轻人,李双 泽,跟很多台湾年轻人一样, 七○年代发现台湾不能代表中国,而且逐渐被国际推到边缘,在危机感和孤独感中,年轻人开始检视自己:为什麽我们从小被教要爱长江、爱黄河、歌颂长城的伟大 —─那都是我眼睛没见过,脚板没踩过的土地,而我住在澹水河边,怎麽就从来不唱澹水河,怎麽我们就不知道自己村子裡头小山小河的名字?台湾也不是没有大江 大海呀?

青年人开始推动「唱我们的歌」,开始自己写歌。那个「中国梦」显得那麽虚无飘淼,是不是该看看脚下踩的泥土是什麽样?他写了《美 丽岛》,改编于一首诗,一下子就流行起来,大家都喜欢唱。


《美丽岛》真的是代表了从中国梦慢慢地转型到「站在这片泥土上看见什 麽、想什麽」的「台湾梦」里程碑:

我们摇篮的美丽岛
是母亲温暖的怀抱
骄傲的祖先正视着
正视着我们的脚步
他 们一再重覆地叮咛
不要忘记   不要忘记
他们一再重覆地叮咛
荜路蓝缕以启山林
婆娑无边的太平洋
怀抱着自 由的土地
温暖的阳光照耀着
照耀着高山和田园
我们这裡有勇敢的人民
荜路蓝缕以启山林
我们这裡有无穷的生命
水 牛   稻米   香蕉   玉兰花

一九七五年,我二十三岁,到美国去读书,每天泡在图书馆里,从早上八点到半夜踩着雪光回到家,除了功 课之外就有机会去读一些中国近代史的书,第一次读到国共内战的部分,第一次知道一九二七年国丄民党对共丄产党员的杀戮,才知道之前所接受的教育那麽多都是 被党和国家机器所操纵的谎言,这是一个很大的震撼。十年之后写了《野火集》,去「腐蚀」那个谎言。

一九七九年,我个人的「中国梦」也起了 质变。在中国梦笼罩的台湾,我们是讲「祖籍」的。也就是说,任何人问,龙应台你是哪裡人,我理所当然的回答就是:「我是湖南人。」

这麽一 路做「湖南人」做了几十年,到一九七九年,中国大陆开放了,我终于在纽约生平第一次见到了一个真正的「共丄匪」站在我面前,这个朴实人刚刚从湖南出来,一 口浓重的湖南腔。有人冲着他问「你是哪裡人」,他就说「我是湖南人」,问话者接着就回头问我「你是哪裡人」——我就愣住了。

我不会说湖南 话,没有去过湖南,对湖南一无所知,老乡站在面前,我登时就说不出话来了。这一辈子的那个「中国梦」突然就把我懵在那儿了,这是一九七九年一个非常大的震 撼——原来啊,我是台湾人。

一起做梦,一起上课

从海棠叶的大中国梦慢慢过渡到台湾人脚踩着泥土的小小台湾梦,人民在七○ 年代末八○年代初开始问「我是谁」。八○年代后,台湾两千多万人走向了转型,自我感觉就是越来越小,什麽事情都一步一个脚印,一点一点做。所以,台湾人就 一块儿从大梦慢慢转到小梦的路上来了,开始一起上八○年代的民丄主大课。这个民丄主课程上得有够辛苦。

《美丽岛》这首歌,在一九七九变成 党外异丄议人士的杂志名字,集结反对势力。当年十二月十日,政丄府对反对者的大逮捕行动开始,接着是大审判。面临巨大的挑战,国丄民党决定审判公开,这是 审判庭上的一张照片:

你们认得其中任何一个人吗?第二排露出一排白牙笑得潇洒的,是施明德,他被判处无期徒刑。施明德右手边的女子是陈 菊,今天的高雄市长,左手边是吕秀莲,上一任的副总统。

我想用这张图片来表达八○年代台湾人慢慢地脚踩泥土重建梦想和希望的过程。如果把 过去的发展切出一个三十年的时间切片来看,刚好看到一个完整的过程:这图里有三种人,第一种是叛乱犯,包括施明德,吕秀莲,陈菊等等,她们俩分别被判十二 年徒刑;第二种是英雄,在那个恐怖的时代,敢为这些政治犯辩护的律师,包括陈丄水扁,谢丄长廷,苏丄贞昌等等;第三类是掌权者,当时的总统是蒋经国先生, 新闻局长是宋楚瑜先生。从这些名字你就看出,在三十年的切片裡,政治犯上台变成了掌权者,掌权者下台变成了反对者,而当时得尽掌声以及人们殷殷期待的,以 道德作为注册商标的那些英雄们变成了什麽?其中一部分人变成了道德彻底破产的贪污嫌疑犯。

这个转变够不够大?亲眼目睹这样一个切肤痛苦的 过程,你或许对台湾民丄主的所谓「乱」有新的理解。

它所有的「乱」,在我个人眼中看来,都是民丄主的必修课;它所有的「跌倒」都是必须的 实践,因为只有真正跌倒了,你才真正地知道,要怎麽再站起来,跌倒本身就是一种考试。所以,容许我这样说:台湾民丄主的「乱」,不是乱,它是必上的课。


表 面上台湾被撕裂得很严重,但不要被这个表面骗了。回到基座上的价值观来看,从前的中国梦慢慢被抛弃了,逐渐发展为台湾的小梦,然后一起上非常艰辛、痛苦的 民丄主课,然而台湾不管是蓝是绿,其实有一个非常结实的共识,比如说:

国家是会说谎的,
掌权者是会腐败的,
反对者是会堕 落,
政治权力不是唯一的压迫来源,
资本也可能一样的压迫。

而正因为权力的侵蚀无所不在,所以个人的权利、比如言论的自 由,是每个人都要随时随地、寸土必争、绝不退让的。

这是大多数台湾人的共识。你所看到的争议、吵架,立法院撕头髮丢茶杯打架,其实都是站 在这个基础上的。这个基础,是以共同的价值观建立起来的。

我有中国梦吗?

回到今天中国梦的主题,可能有很多台湾人会跳起 来说:中国不是我的梦,我的梦裡没有中国。

但是,你如果问龙应台有没有中国梦,我会先问你那个中国梦的「中国」指的是什麽?如果指的是 「国家」或「政丄府」,「国家」「政丄府」在我心目中不过就是个管理组织,对不起,我对「国家」没有梦,「政丄府」是会说谎的。但如果你说的「中国」指的 是这块土地上的人,这个社会,我怎麽会没有梦呢?别说这片美丽的土地是我挚爱的父亲、母亲永远的故乡,这个地方的好跟坏,对于台湾有那麽大的影响,这个地 方的福与祸,会牵动整个人类社区的未来,我怎会没有中国梦呢?

我们就从「大国崛起」这个词说起吧。我很愿意看到中国的崛起,可是我希望它 是以文明的力量来崛起的。

如何衡量文明?我愿意跟大家分享我自己衡量文明的一把尺。它不太难。看一个城市的文明的程度,就看这个城市怎样 对待它的精神病人,它对于残障者的服务做到什麽地步,它对鳏寡孤独的照顾到什麽程度,它怎样对待所谓的盲流民工底层人民。对我而言,这是非常具体的文明的 尺度。

一个国家文明到哪裡,我看这个国家怎麽对待外来移民,怎麽对待它的少数族群。我观察这个国家的多数如何对待它的少数——这当然也包 含十三亿人如何对待两千三百万人!

谁在乎「大国崛起」?至少我不在乎。我在乎的是刚才我所说的文明刻度——你这大国怎麽对待你的弱势与少 数,你怎麽包容意见不同的异议份子,这,才是我在乎的。如果说,所谓的大国崛起,它的人民所引以自豪的,是军事的耀武扬威,经济的财大气粗,政治势力的唯 我独尊,那我宁可它不崛起,因为这种性质的崛起,很可能最终为它自己的人民以及人类社区带来灾难和危险。

谁又在乎「血浓于水」?至少我不 那麽在乎。如果我们对于文明的尺度完全没有共识,如果我们在基座的价值上,根本无法对话,「血浓于水」有意义吗?

我的父亲十五岁那年, 用一根扁担、两个竹篓走到湖南衡山的火车站前买蔬菜,准备挑回山上。刚巧国丄民党在招宪兵学生队,这个少年当下就做了决定:他放下扁担就跟着军队走了。

我 的父亲在一九一九年出生,二○○四年,我捧着父亲的骨灰回到了湖南衡山龙家院的山沟沟,乡亲点起一路的鞭炮迎接这个离家七十年、颠沛流离一生的游子回乡。

在 家祭时,我听到一个长辈用最古老的楚国乡音唱出凄切的輓歌。一直忍者眼泪的我,那时再也忍不住了。

楚国乡音使我更深刻地认识到父亲一辈子 是怎麽被迫脱离了他自己的文化,过着不由自主的放逐的一生。一直到捧着他的骨灰回到那片土地,我才深切的感觉到这个七十年之后以骨灰回来的少年经历了怎样 的中国的近代史。而我在浙江新安江畔长大的母亲,是如何地一生怀念那条清澈见鱼的江水。

一个开阔、包容的中国

所以,请相 信我,我对中国的希望是真诚的。但是请不要跟我谈「大国崛起」, 请不要跟我谈「血浓于水」,我深深盼望见到的,是一个敢用文明尺度来检验自己的中国;这样的中国,因为自信,所以开阔,因为开阔,所以包容,因为包容,所 以它的力量更柔韧、更长远。当它文明的力量柔韧长远的时候,它对整个人类的和平都会有关键的贡献。

一九八五年我写《野火集》,一九八六年 一月,《野火集》在风声鹤唳中出版。八月,我迁居欧洲。离开台湾前夕,做了一场临别演讲,是「野火」时期唯一的一次。演讲在害怕随时「断电」的气氛中进 行。今天,二○一○年八月一日,在北京大学,我想唸那篇演讲的最后一段,与大陆的读者分享:

在临别的今天晚上,你或许要问我对台湾有什麽 样的梦想?

有。

今天晚上站在这里说话,我心里怀着深深的恐惧,恐惧今晚的言词带来什麽后果,我的梦想是,希望中国人的下 一代可以在任何一个晚上站在任何一个地方说出心里想说的话,而心中没有任何恐惧。我们这一代人所做的种种努力也不过是希望我们的下一代将来会有免于恐惧的 自由。

那是一九八六年八月十一日。

(二○一○年八月一日北京大学百年纪念讲堂演讲全文)

星期五, 四月 30, 2010

这辈子见过的最诚实的清华女生

发信人: higuys (墓地的月亮), 信区: Joke
标  题: [进版]这辈子见过的最诚实的清华女生
发信站: 水木社区 (Fri Mar 26 00:31:17 2010), 站内

下午在一个招聘会上,一清华小师妹来面试。

她:你们是窝 窝团的?

我:是。

她:你们做得挺好的吧?

我:不好。

她:我说呢,怎么没听过。

我:…

她: 你们还做集合网吧?

我:这个听说过吗?

她:听说过。

我:感觉怎么样?

她:只是听说过, 从来没上过。

我:…

她:你要的条件,除了“形象气质好”,我都符合。

我:不,你的形象气质很符合。

她: 哦。那我全部符合。你们要我吗?

我:我们还得进行第二次面试。

她:那就在这儿一块面了吧。你看你们摊位前也没人,闲着也 是闲着。

我:…

我:你喜欢创业公司吗?

她:是啊,我平时很想到中关村的创业公司去实习,给他们扫地。

我: 为什么?

她:因为感觉你们这些创业的真的很可怜。想帮帮你们。

我:…

我:你条件这么好,为什么不去四 大?

她:我只投了一家,他们不要我。不然我怎么会来你们这儿?

我:…

我:你要多少钱?

她: 你给多少钱?

我:你要多少钱?

她:我说少了吧,你肯定就给我那么点;我说多了吧,你肯定不要我。所以我不能说。

我:…

她: 你们转户口吗?

我:不转。

她:××银行转。

我:啊?

她:是的。我有他们的OFFER.

我: 假设我们和那个银行都要你,但是我们工资比他们低,不转户口,你选择哪个。

她:当然那个银行了。

我:为什么?

她: 你都替我回答了。

我:啊?

她:你都说了,不转户口,工资低,那我应该去哪儿?

我:…

我: 你可以过来实习,但没工资。

她:没工资你们能招到实习生吗?

我:能。比如这个女生,她就是我们的实习生。清华水利的研究 生,没工资。

她问旁边那个PPMM:你真的不要工资。

PPMM:是的。

她:你为什么不要工资?

PPMM:…

她: 你是不是喜欢他?

PPMM红着脸,哑口无言。



这可爱的小师妹,不会说一句谎话。我们在那儿被她逗得笑 了一个下午。