我的心,这只野鸟,在你的双眼中找到了天空。 它们是清晓的摇篮,它们是星辰的王国。 我的诗歌在它们的深处消失。 只让我在这天空中高飞,翱翔在静寂的无限空间里。 只让我冲破它的云层,在它的阳光中展翅吧。
Thursday, March 25, 2010
Create User in MySQL
mysql> grant all privileges on 'dbname' to 'username'@localhost identified by 'password' with grant option;
mysql> grant select, insert, update, delete, create, drop
-> on db.'dbname'
-> to 'username'@localhost
-> identified by 'password';
Wednesday, March 24, 2010
[Wamp] Fatal error: Maximum execution time of 300 seconds exceeded
$cfg['ExecTimeLimit'] integer [number of seconds]
Function of the value of this variable:
Set the number of seconds a script is allowed to run. If seconds is set to zero, no time limit is imposed.This setting is used while importing/exporting dump files but has no effect when PHP is running in safe mode.
Increase Limit on Dumpfile Size in MySQL
> sudo gedit /etc/php5/apache2/php.ini
Modify
a) post_max_size
b) memory_limit
c) upload_max_filesize
In an order memory_limit > post_max_size (size greater than required DB) > upload_max_filesize Restart apache.
If you are using MySQL alone, please modify your "my.ini" file. If you cannot find such a file, please make a copy of your "my-medium.cnf" file and rename it to "my.ini". You'll find "max_allowed_packet" variable. Then change its value to a larger one you need!!!
Monday, March 22, 2010
Thursday, March 18, 2010
Hadoop中Writable接口的序列化
public static class Key implements WritableComparable
解决Hadoop中的“输出目录已存在”的问题
FileSystem fstm = FileSystem.get(conf);
Path outDir = new Path(args[2]);
fstm.delete(outDir, true);
这样即可解决问题。
Wednesday, March 17, 2010
Linux下设置环境变量
$ export JAVA_HOME=/usr/java/jdk1.6.0_07
$ export PATH=$PATH:$JAVA_HOME/bin
hadoop:
First setup the HADOOP_HOME environment variable to the install directory. Then append $HADOOP_HOME/bin to your PATH environment variable. It is advisable to add these to profile setup scripts.
$ export HADOOP_HOME=/u/kduan/Desktop/hadoop-0.20.2
$ export PATH=$PATH:$HADOOP_HOME/bin
要注意的是,等号的左右不能出现空格。最好修改一下.bash_profile文件,把上述export命令添加进去,这样每次用户登录时自动执行export命令。
javac -classpath 的使用
javac: 如果当前你要编译的java文件中引用了其它的类(比如说:继承),但该引用类的.class文件不在当前目录下,这种情况下就需要在javac命令后面 加上-classpath参数,通过使用以下三种类型的方法 来指导编译器在编译的时候去指定的路径下查找引用类。
(1).绝对路径:javac -classpath c:\junit3.8.1\junit.jar Xxx.java
(2).相对路径:javac -classpath ..\junit3.8.1\Junit.javr Xxx.java
(3).系统变量:javac -classpath %CLASSPATH% Xxx.java (注意:%CLASSPATH%表示使用系统变量CLASSPATH的值进行查找,这里假设Junit.jar的路径就包含在CLASSPATH系统变量中)
总结:(1).何时需要使用-classpath:当你要编译或执行的类引用了其它的类,但被引用类的.class文件不在当前目录下时,就需要通过-classpath来引入类
(2).何时需要指定路径:当你要编译的类所在的目录和你执行javac命令的目录不是同一个目录时,就需要指定源文件的路径(CLASSPATH是用来指定.class路径的,不是用来指定.java文件的路径的)
Wednesday, March 10, 2010
三种常见连续随机变量
x在[a,b]内的均匀分布,概率密度f(x)=1/(b-a),期望EX=(a+b)/2,方差DX=(b-a)^2/12
正态分布
概率密度f(x)=[1/(2πσ)^0.5]*e^[-(x-μ)^2/2σ^2],x∈(-∞,+∞),期望EX=μ,方差DX=σ
指数分布
概率密度f(x)=λe^(-λx),(x>0)。期望EX=1/λ,方差DX=1/λ^2
Monday, March 8, 2010
(转)凤姐超强语录!
2.爱因斯坦绝对没我聪明,他发明电灯的嘛!
3.必须具备国际视野,有征服世界的欲望。奥巴马才符合我的征婚标准。(谈择偶)
4.本人找伴侣,一不求帅,二不求富。
5.9岁博览群书,20岁到达顶峰,往前300年往后推300年,没有人会超过我。在智力上他们是不可能比我强的,那就在身高和外貌上弥补吧……
6.他太老了,而且身高也不够。他也不可能是北大清华,更不可能是经济学专业,我不会选他(陈坤)。
7.这个标准不高,这个标准很低。
8.看到其他女的就他妈花痴一样。(疯了!上电视说脏话)
9.过了三十岁自己滚蛋。
10.男人过了三十岁就没看点了,就人老珠黄了。
11.你给我十万。
12.吾日三省吾身(凤姐念错字了)省应该读 xǐng,她读shěng。
13.我用的是A4纸,因为A4是非常标准的纸。
14.因为上海是一个经济中心,我这个人对征服经济世界蛮有兴趣的。
15.我经常看的都是人文社会的书,例如《知音》、《故事会》。
16.我一般按长相将人分五等。我是第三等。(主持人指着她前男朋友问:他是几等)他啊,没有等(捂嘴笑)……
17.我在家乐福超市工作,世界500强。
18.世界上有一半的男人看到我就想逃跑,另一半我看到他就想逃跑。
19.我这个人有点洁癖,以前读书时衣服每天要洗,现在基本上过两三天就洗一次,洗头也这样,现在很多时间都浪费在这上面。
20.罗指着台下众人说:你们这些普通院校的,如果撇开这上面的七条,你们肯定有人会愿意娶我……
21.真的美女真多啊。我对面的一位男孩,开始很仔细的打量我,我想我应该还没有出名到他已经看过我的视频吧。有次有人对我说你上电视了,我说什么电视?人家说东方卫视啊。我打开电视,东方卫视正在播奥巴马的新闻。我觉得我和奥巴马之间还有很大的距离。做人,自知之明还是有的。
22.你看看你的身高你的长相,我觉得你配不上我,我们之间差距太大了,带回家的话,我家里的人肯定会嘲笑我的,他们会说,罗玉凤,你找的男朋友怎么这么丢脸啊,连话都不会讲,我觉得我们还是算了吧,我一定能够找到一个比你好的多的男朋友。
23.像我这样的一个人,独自在外面闯荡。很引人注目,可是自己想想。论交际,论人际关系,论工作能力。实在是不但女人,就是男人,也很难和我相比。论健康状况,却是一天不如一天的。我想我不能在这么下去了。
24.我最喜欢的诗人是顾城 顾城(强调) 你知道吧???
25.要说我写诗的风格嘛,比较像顾城,写文章嘛,人家都说我像鲁迅。
26.山东走出去的我可以考虑一下,目前还在山东工作的不予考虑。
27.凤姐:爱因斯坦宏观上不如我…… 激动网主持人:你指的宏观是? 凤姐:把全人类更上一层吧。
28.我弟弟长得很阳光帅气。 你弟弟长得和你很像? 对,很像!
30.我在上海的时候,一直会有人在我肩膀上摸一摸什么的,有目的性的佧我油。
31.(与主持人对话) —如果说他(指陈坤,凤姐的偶像之一)向你求婚了,跪在你面前了,玉凤你嫁给我吧,你会同意吗? —我不会同意的。首先他年龄三十三了,我觉得这个太老了哦。然后他身高可能应该也不足,然后他不是北大清华的,他根本就不可能是经济学专业的。
32.中国人民银行、花旗银行、渣打银行、汇丰银行、交通银行、中国人寿等金融公司驻中国区首席执行官向我表达爱意,愿意与我结婚,而本人觉得他们年老色衰,所以不愿意。
33.我的七大要求全国还能找到100个我认为不高,全国找到1个是还差一点,全国一个都找不出我认为是刚好。
34.征婚者:“你从哪里来?” 罗玉凤:“我从地球来。” 征婚者:“好巧我也是。” 35.我爱干净,比较洁癖,男朋友看到女的别他妈花痴样。
36.主持人:你觉得爱因斯坦也不及你聪明么? 罗玉凤:不及我不及我,差远了,他是一名科学家。 主持人:对,他是一名科学家,但是你知道他所知道的东西么? 罗玉凤:我不知道他知道的东西,我不能发明电灯。
37.罗玉凤在谈自己最喜欢的一首诗,是凤姐自己写的:天还没有黑,天已经黑了。
38.我平常接触的朋友多,因为我交际面广嘛。
39.凭我的智慧,我的相貌,我完全可以找一个比他(指前男友)更优秀的男朋友。
40.你去死!
41.很多人都说我漂亮。我也知道我漂亮。
42.我喜欢蓝莓的味道。蓝莓是一种优雅的水果,即使我毫无姿态地坐在路边的水泥地,拣起没有洗过的蓝莓塞进嘴里,我依然认为我是优雅的,因为优雅的蓝莓。
附:凤姐征婚标准
罗玉凤-征婚标准
本人找伴侣。一不求帅。二不求富。但求同甘苦,共患难。 本人对伴侣要求如下:[3]
第一,必须为北京大学或清华大学硕士毕业生。必须本科硕士连读,中途无跳级,不留级,不转校。在外参加工作后再回校读书者免。
第二,必须为经济学专业毕业。非经济学专业毕业则必须精通经济学。或对经济学有浓厚的兴趣。
第三,必须具备国际视野,但是无长期定居国外甚至移民的打算。
第四,身高176--183左右。长得越帅越好。
第五,无生育史。过往所有女友均无因自身而致的堕胎史。
第六,东部沿海户籍,即江,浙,沪三地户籍或广东,天津,山东。北京,东北三省,内蒙古等地户籍。西南地区即重庆。贵州。云南。西藏,湖南,湖北等地籍贯者不予考虑。
第七,年龄25--28岁左右。即06届,07届,08届,09届毕业生。有一至两年的工作经验,06级毕业生需年龄在28岁左右,09级毕业生则需聪明过人。且具备丰富的社会实践经验。就职于国家机关,国有企事业单位者不愿考虑。但就职于中石油,中石化等世界顶尖型企业或银行者又比较喜欢。现自主创业者要商榷一番了。 本人85年旧历8月初9日生。新历生日为9月23日。身高146。平时穿高跟鞋153。体重40kg.先就读于綦江师范学校获中师文凭。 后连读重庆教育学院获汉语言文学专业大专文凭。懂诗画,唱歌,弹琴,刺绣等。最擅长诗歌与散文。并精通古汉语。博览群书。较为狂妄。无堕胎史,无生育史。交过几个不了了之的男朋友。具体进展却无。主要要求:男方身家清白,聪慧过人。
罗玉凤-的号召力 “信凤姐,得自信" 广大凤姐支持者的口号,凤姐新时代女性的力量。
Friday, March 5, 2010
关于十月围城、刘墉及其他
但是这部电影还是挺反应当时现实的,真真正正的一部《LOST》。在这一大群人中,除了孙中山自己,好像真正懂得革命的就没什么人了,每个人活得都挺迷茫。那个李玉堂,反复的说“我只是个生意人”、“我只出钱不出力”,虽然一度组织大家高声呐喊保护孙先生,但是当发现刘少白没死,就立即退缩了。他骨子里根本不明白革命的意义,大概是许多当时商人的写照吧。再说重光,就是一个热血青年,受刘少白的影响一心向往“革命”,但是给人的感觉却是可怜和可惜。其实有很多牺牲都是可以避免的,但是是需要真正的智慧的。剩下来的阿四,臭豆腐,方红等等人,其实根本就跟革命不搭边儿么,这样的牺牲,说句不好听的,属于“死都不知道怎么死”的那种,难道不是一种悲哀?
演员演技都还不错,特别是李宇春和巴特尔,一个卖唱的,一个卖艺的,能有这样的表现已经很赞了,嘿嘿。谢霆锋演得也真不错,感觉他演技越来越成熟了。不过最让我震撼的应该是胡军了,演这样一个没有脑子反面人物,冷冷的眼神,麻木的内心,表现力超强的。甄子丹的武打戏是这部电影里的一个亮点,不过没有延续叶师傅的风格,有点儿可惜。
不过好像本人并不是很喜欢看这种的电影,最好是文艺一点儿的,然后又能告诉人一些道理的那种,嘿嘿。特别不喜欢阿凡达一类的电影,几乎只有感官的冲击和刺激,却缺少心灵的震撼。
哦,还有啊,最近不好意思确实很闲,读了不少刘墉的文章,总觉得如果要用一个字来形容刘墉的文字的话,其实就是一个“爱”字。不是那种“无形”的大爱,而是那种无微不至的小爱。不管是对嗷嗷待哺的婴儿,对自己深爱的妻,还是对身边的一花一草,一房一木,都渗透着很细腻的感情。这也可能是因为刘墉本身就是个热爱生活的画家吧,比如看他画昙花,都是在抱着一种强烈的感情,非常之投入,非常之感人。。。再看看他写的那篇雨花石,“看到水中的雨花石映出来的人影”,简直是把一堆石头写活了,每一块石头都好像在诉说自己的故事一样。他深爱这石头,也深爱着孩子,当孩子们看到这么漂亮的雨花石的时候,他毫不犹豫的把他们都送给了孩子们。仔细想想,这样的生活态度不正是我想要的么。。。
还有还有,不想再自欺欺人了。与其说伪装是一种力量,不如说它就是一针麻醉剂。人还是活得痛痛快快真真切切的更好。
Play with Nutch - System Setup in Windows Environment
Software needs:
Cygwin: used to support shell commands in windows environment. Nutch does not provide separate scripts for NT cmd!! (NT cmd shell does not nest environments recursively)
Tomcat: used to provide servers!!
Nutch 1.0: latest vesion of Nutch!! After downloading, please extract nutch files under the /home/yourusername directory in Cygwin.
2. Set up environment variables for BOTH windows and Cygwin
(a) Set up the following environment variables for windows
JAVA_HOME: value = your_java_jre_location (e.g. D:\SoftWare\JAVA)
NUTCH_HOME: value = your_nutch_location (e.g. D:\SoftWare\cygwin\)
NUTCH_JAVA_HOME: same with JAVA_HOME
Then add these variables into "path".
(b) Add the following scripts into .bash_profile
PATH="/usr/local/bin:/usr/bin:/bin:$PATH:/cygdrive/d/SoftWare/JAVA";
export CLASSPATH=D:\SyftWare\cygwin\home\yourusername\nutch\lib\lucene-core-2.4.0;
export JAVA_HOME=/cygdrive/d/SoftWare/JAVA;
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
3. Test your Nutch
Create a folder "urls" in /home/yourusername/nutch/bin/; then create a text file "url.txt" in it. Write in the web address you want to crawl, e.g. http://www.iub.edu/. Don't forget the "/" at the end of the address. (This is important)
Now modify crawl-urlfilter.txt under \home\kduan\nutch\conf. Identify the following:
# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/
Change it to:
# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*iub.edu/
Then modify nutch-site.xml in the same folder. The use the following scripts to override
<:property>
HD nutch agent
1.0
Now you can test your crawler. Run following script:
$ nutch crawl urls -dir crawl -depth 3 -topN 50
If you are not so sure about these arguments, please just type "nutch crawl" to see the specifications!!
The crawler should be working now. You can find the crawled results in "crawl" folder that we have just speficied in our script. If want to search through the results, you can simply run:
$ nutch org.apache.nutch.searcher.NutchBean indiana
where "indiana" is a keyword we are searching for, then you'll see the following :
$ nutch org.apache.nutch.searcher.NutchBean indianaTotal hits: 54 0 20100305123428/http://www.iub.edu/ ... videos ?Campus Info 107 S. Indiana Ave. Bloomington, IN 47405 ... site index Visit IU Bloomington Indiana University News RSS feed of 1 20100305123447/http://www.iub.edu/index.shtml ... videos ?Campus Info 107 S. Indiana Ave. Bloomington, IN 47405 ... site index Visit IU Bloomington Indiana University News RSS feed of 2 20100305123537/http://emergency.iub.edu/faq.shtml ... edu ) and the Indiana University Emergency Preparedness Web site ... hear mean? The Indiana University campus, city of ... 3 20100305123447/http://www.iub.edu/videos/index.shtml ... performances. Campus Info 107 S. Indiana Ave. Bloomington, IN 47405 ... site index Visit IU Bloomington Indiana University News RSS feed of 4 20100305123447/http://libraries.iub.edu/ ... Star, and the Indiana Daily Student "IU-Bloomington Libraries ... Top Honors The Indiana University Bloomington Libraries have been ... 5 20100305123447/http://www.iub.edu/slideshows/index.shtml ... Stories ?Campus Info 107 S. Indiana Ave. Bloomington, IN 47405 ... site index Visit IU Bloomington Indiana University News RSS feed of 6 20100305123447/http://www.iub.edu/academic/index.shtml ... departments Campus Info 107 S. Indiana Ave. Bloomington, IN 47405 ... siteindex Visit IU Bloomington Indiana University News RSS feed of 7 20100305123447/http://www.iub.edu/comments/index.shtml ... here ?Campus Info 107 S. Indiana Ave. Bloomington, IN 47405 ... site indexVisit IU Bloomington Indiana University News RSS feed of 8 20100305123447/http://www.iub.edu/student/index.shtml ... consultants Campus Info 107 S. Indiana Ave. Bloomington, IN 47405 ... siteindex Visit IU Bloomington Indiana University News RSS feed of 9 20100305123447/http://www.iub.edu/about/index.shtml ... Bloomington Campus Info 107 S. Indiana Ave. Bloomington, IN 47405 ... siteindex Visit IU Bloomington Indiana University News RSS feed of
Total hits is the number of records found!!
4. Use Nutch on Tomcat servers
Copy nutch-1.0.war (under root folder of Nutch) to webapps under Tomcat installation folder, and rename it to search.war. Start Tomcat to let it automatically extract contents from this archive. Modify nutch-site.xml in tomcat\webapps\search\WEB-INF\classes; add the following property:
This is to specify the targeted search directory, i.e. where you put the crawled contents.
Special note to Chinese users.
Then modify server.xml in tomcat\conf, identify the "Connector" part and add
URIEncoding="UTF-8" useBodyEncodingForURI="true"
We use URIEncoding="UTF-8" useBodyEncodingForURI="true" here to solve Chinese character encoding problem.
Then you can restart Tomcat, then type http://localhost:8080/search to the Nutch search page. Then you have set up a search engine now!!
Here is a screenshot. Have fun!!
Thursday, March 4, 2010
一撮生命的清茶
在BYR上看到一首“打油诗”:
青瓷传清茶,接杯交盏。君莫怜,只有酒醉人。 娇花映鲛人,泪织绮罗。月无言,徒留魂梦欺。
看到“清茶”二字,想起来下边这个典故。
一个屡屡失意的年轻人千里迢迢来到普济寺,慕名寻到老僧释圆,沮丧地对他说:“人生总不如意,活着也是苟且,有什么意思呢?”
释圆静静听着年轻人的叹息和絮叨,末了才吩咐小和尚说:“施主远道而来,烧一壶温水送过来。”
稍顷,小和尚送来了一壶温水,释圆抓了茶叶放进杯子,然后用温水沏了,放在茶几上,微笑着请年轻人喝茶。杯子冒出微微的水汽,茶叶静静地浮着。年轻人不解地询问:“宝刹怎么用温茶?”
释圆笑而不语。年轻人喝一口细品,不由得摇摇头:“一点茶香都没有呢。”释圆说:“这可是闽地名茶铁观音啊。”年轻人又端起杯子品尝,然后肯定地说:“真的没有一丝茶香。”
释圆又吩咐小和尚:“再去烧一壶沸水送过来。”稍顷,小和尚便提着一壶冒着浓浓白汽的沸水进来。释圆起身,又取过一个杯子,放茶叶,倒沸水,再放在茶几上。年轻人俯首看去,茶叶在杯子里上下沉浮,丝丝清香不绝如缕,望而生津。
年轻人想要去端杯,释圆挡开,又提起水壶注入一线沸水。茶叶翻腾得更厉害了,一缕更醇厚更醉人的茶香袅袅升腾,在禅房里弥漫开来。释圆一共注了五次水,杯子终于满了,那绿绿的一杯茶水,端在手上清香扑鼻,入口沁人心脾。
释圆笑着问:“施主可知道,同是铁观音,为什么茶味相差这么大吗?”
年轻人思忖着说:“一杯用温水,一杯用沸水,冲沏的水不同。”释圆点头:“用水不同,茶叶的沉浮就不一样。温水沏茶,茶叶轻浮于水上,怎会散发清香?沸水沏茶,反复几次,茶叶沉沉浮浮,才能释放出茶的清香。世间芸芸众生,又何尝不是沉浮的茶叶呢?那些不经风雨的人,就像温水沏的茶叶,只在生活表面漂浮,根本浸泡不出生命的芳香;而那些栉风沐雨的人,如被沸水冲沏的酽茶,在沧桑岁月里几度沉浮,才有那沁人的清香啊。”
浮生若茶,我们何尝不是一撮生命的清茶?命运又何尝不是一壶温水或炽热的沸水呢?茶叶因为沉浮才释放了本身的清香,而生命,也只有遭遇一次次挫折和坎坷,才激发出人生那一脉脉幽香。
Wednesday, March 3, 2010
Statistical Learning Algorithm - Expectation Maximization
Example: EM Algorithm in Gaussian Mixture Models
Clusters in data often comes from a mixture distribution, which may have k components. A datapoint is obtained by choosing a component and then apply that component to generate a sample. As for continuous data, a natural choice of probabilistic model is the multivariate Gaussian, which forms the mixture of Gaussian distributions. The parameters of a GMM are Wi = P(C = i), i.e. the weight of each component, Ui, i.e. the mean of each component, and i, the covariance of each component.
This basic idea of EM in this context is to pretend that we know the parameters of the model, and then to infer the probability that each datapoint belongs to each component. After that, we refit the components to the data, where each component is fitted to the entire data set with each point weighted by the probability that it belongs to that component. This process iterates until convergence. The hidden variables, in this case, would be which distribution component each datapoint belongs to. For the mixture of Gaussians, we randomly innitialize parameters for the mixture model, and then repeat following steps:
1. E - Step
Compute Pij = P(C = i Xj), which is the probability that datapoint Xj was generated by component Ci. By Bayes' rules, we have Pij = alpha*P(Xj C = i)*P(C = i), where alpha is a normalizer. P(Xj C = i) is just the probability density at Xj of the component Ci, and P(C = i) is the weight of Ci. Let Pi = j Pij.
2. M - Step
Update the mean, covariance, and component weights as follows.
i <- j Pij*(Xj - Ui)(Xj - Ui)'/PiWi <- Pi.
One thing to mention is, EM increases the log likelihood of the data at every iteration. In some situation, as discussed above, EM will reach a local maxima. A Matlab implementation of EM algorithm for Gaussian Mixture Models is attached here.
--------------------Matlab Codes for EM-GMM-------------------------
function [means, covs, weights, probDens, maxVals, maxIDs] = EMGaussianMixtureModel(dataset, k)% This is an EM algorithm for estimating parameters in Gaussian Mixture% Model% 'dataset' is the data ready for cluster% 'k' is the number of Gaussian components
% Get the dimension of each data pointdim = length(dataset(1, :));
% Get the number of data points in this datasetnum = length(dataset(:, 1));
% Initialize the weight uniformly for each Gaussian modelweights = zeros(k, 1);
for i = 1 : k weights(i) = 1/k;end
% Initialize means for each Gaussian modelmeans = zeros(k, dim);
% Initialize covariance matrix for each Gaussian modelcovs = zeros(dim, dim, k);
for i = 1 : k A = randn(dim, dim); covs(:, :, i) = A*A';end
% Initialize the probability table where probTable(X, i) stores the% probability that data point X was generated by component iprobTable = zeros(num, k);
% Begin EM AlgorithmnotConverge = 1;iterCount = 0;maxCount = 1000;
while(notConverge) % Expectation Step % Iterate the dataset to fill 'probTable' iterCount = iterCount + 1; for i = 1 : k for j = 1 : num p = mvnpdf(dataset(j, :), means(i, :), covs(:, :, i)); w = weights(i); % Save this the this probability to corresponding position in % the table % Note that the values computed here need to be normalized % later probTable(j, i) = p * w; end end % Normalize the probabilities we have just computed for i = 1 : length(probTable(:, 1)) total = sum(probTable(i, :)); for j = 1 : k probTable(i, j) = probTable(i, j)/total; end end % Maximization Step % Compute new mean, covariance matrix and weights for each Gaussian % model % We need to save current parameters for convergence checking tempWeights = weights; tempMeans = means; tempCovs = covs; for j = 1 : k pi = sum(probTable(:, j)); means(j, :) = zeros(1, dim); covs(:, :, j) = zeros(dim, dim); for i = 1 : num data = dataset(i, :); means(j, :) = means(j, :) + (probTable(i, j)/pi) * data; covs(:, :, j) = covs(:, :, j) + (probTable(i, j)/pi) * (data - means(j, :))' * (data - means(j, :)); end weights(j) = pi; end % Normalize the weights total = sum(weights); for i = 1 : k weights(i) = weights(i)/total; end % Check convergence threshold = 0.001; flag = 1; for j = 1 : k if (max(abs(tempWeights - weights)) > threshold) flag = 0; break; end if (max(abs(tempMeans - means)) > threshold) flag = 0; break; end if (max(abs(tempCovs - covs)) > threshold) flag = 0; break; end end if flag == 1 notConverge = 0; end % If iteration takes too long, we need to terminate it if iterCount > maxCount notConverge = 0; endend
% Now compute the probability density P(C = i Xj)probDens = zeros(num, k);
% This is P(C = i, Xj)for j = 1 : k for i = 1 : num probDens(i, j) = weights(j) * mvnpdf(dataset(i, :), means(j, :), covs(:, :, j)); endend
% This is P(C = i Xj)for i = 1 : num % This is P(Xj) total = sum(probDens(i, :)); for j = 1 : k probDens(i, j) = probDens(i, j)/total; endend
% Save the max value and their indices[maxVals, maxIDs] = max(probDens, [], 2);
% Begin plot the resultsfigure;
hold on;
for i = 1 : length(dataset) if maxIDs(i) == 1 plot(dataset(i, 1), dataset(i, 2), 'o', 'MarkerEdgeColor', 'r', 'MarkerFaceColor', 'r'); elseif maxIDs(i) == 2 plot(dataset(i, 1), dataset(i, 2), 'o', 'MarkerEdgeColor', 'g', 'MarkerFaceColor', 'g'); elseif maxIDs(i) == 3 plot(dataset(i, 1), dataset(i, 2), 'o', 'MarkerEdgeColor', 'b', 'MarkerFaceColor', 'b'); endend
hold off;
end
Monday, March 1, 2010
Statistical Learning Algorithm - Maximum Likelihood Estimation
2. How to Compute MLE
To get parameters that maximize L is the same to maximize log(L). In most cases, it is much easier to do so. We compute derivatives of log(L) with respect to , and let them to be zero. Then we get the following:
This is called the system of likelihood equations. The solutions of the above equation system, if can be verified to maximize L, are exactly the parameters we need to get. Sometimes, the solutions may be multiple, so further steps is required to distinguish which solution gives the parameters we want.
Data Clustering Algorithm - K-means
Intuitively, we now introduce major steps and some of their details in a simple K-means implementation.
Step 1: Initialization of K centroids
Centroid is a important concept here. The centroid is the center of one cluster. K-means is actually a iterative method. Centroids are updated through iterations, by computing the means of all current datapoints in one cluster. However, the initialization of centroids is very tricky, and will have a great impact on the clustering result. By default, the centroids are selected randomly from the datapoints in the given dataset. But various improvements are now available. Random, Forgy, MacQueen and Kaufman are four good examples. Discussions about them are available here.
Step 2: Assignment of datapoints to nearest centroids
In this step, we need to compute the distances from each datapoint to these K centroids. Based on these distance information, we assign a "nearest" centroid to each datapoint. The word "nearest" is quoted because another tricky thing will happen: what distance measure are we going to use? Again, the default measure is the euclidean distance. But this choice should depend on different situations. Some new distance measures like walk-based or ontology-based, etc are emerging for different needs.
Step 3: Update the centroids
After we have obtained these distance information (we can actually save them in a hash table or similar structure), we need to update the centroids. The new centroids are computed by taking the means of all datapoints in one "current" cluster. I put the word "current" because the clusters are changing all the time.
All we need to do now is to iterate these steps until the algorithm converges. Yes, it will, usually. The convergence properties are discussed here.
I have attached a matlab version of K-means algorithm here. It is a very simple implementation: random initialization and plain Euclidean distance are adopted. This is only for you to have a general concept of what this algorithm do.
-----------------K-means Algorithm - Matlab Implementation------------------
function [labels] = KMeansCluster(dataset, k)% This is a matlab version of a simple K-Means algorithm% 'dataset' is the data ready for cluster% 'k' is the number of clusters
% Dimension of each datapointdim = length(dataset(1, :));
% Number of datapoints in the given datasetnum = length(dataset);
% Initialize labels for datapointslabels = zeros(num, 1);
% Initialize centroids for this datasetcentroids = zeros(k, dim);
% Initialize k centroids% Default method - randomly choose k datapointscentIDs = randint(k, 1, num);for i = 1 : k centroids(k, :) = dataset(centIDs(i), :);end
% K-Means BeginnotConverge = 1;threshold = 0.001;maxIter = 1000;iterCount = 0;
while notConverge % Compute distances from each datapoint to these k centroids, and % assign each datapoint a cluster label % Create a table to save all intermediate distance information distTable = zeros(num, k); for i = 1 : num data = dataset(i, :); for j = 1 : k % Use simple Euclidean distance distTable(i, j) = pdist([data; centroids(j, :)], 'euclidean'); end end % Assignment Step [Y, labels] = min(disTable, [], 2); % Update Step % Compute new centroids % Save previous centroids for convergence checking tempCentroids = centroids; for i = 1 : k total = zeoros(1, dim); count = 0; for j = 1 : num if labels(j) == i total = total + dataset(j, :); count = count + 1; end end centroids(i, :) = total/count; end % Check convergence if max(abs(centroids - tempCentroids) < notconverge =" 0;" itercount =" iterCount"> maxIter break; endendend
龙应台:美国不是我们的家
----------------------------------------------------------------- 美国不是我们的家
我收到好几十封读者的来信。年长一点的说:"每看你的文章,心情激动难平,一再泪下 。"年轻一点的大学生写着:"在成为冷漠的社会人之前,请告诉我们:我们能为台湾这个 母亲做些什么?"更年轻的,高中生,说:"反正做什么都没有用:我大学毕业就要远走高 飞,到美国去!" ※ ※ ※
少年人激动愤慨,老人家伤心落泪,绝对不是因为我的文章写得好。这一大叠情绪汹涌的 信件对有心人应该透露出两个问题:第一是事态本身的严重性;台湾生活环境的恶劣已经 不是知识分子庸人自扰的嚷嚷,而是市井小民身受的痛苦。第二是个人的无力感;如果这 个社会制度中有畅通的管道让小市民去表达他的意愿、去实现他的要求,他就不会郁积到 近乎爆炸的程度,就不需要凭靠区区几篇不起眼的文章来发泄他的痛苦。 第二个问题要比第一个还严重得多。因为环境再恶劣,难题再复杂,个人如果有适当的途 径去解决问题,觉得享有可为,他总是肯定的、理性的、乐观进取的。反过来说,即使问 题本身并不那么恶劣,但是个人觉得他的一切努力都是一条死巷,他的愤懑锁在堵塞的管 道中时,人,是会爆炸的。 半年前,有个爱看书的青年因为受不了隔邻女人早晚不断地诵经,冲进了她的屋子拿刀杀 她。暴力当然没有任何藉口,但是我们要追究原因:如果这个青年只要打一通电话,警察 就会来取缔噪音的话,这件凶杀案是不是可以避免?换句话说,假使这个青年一通一通电 话的哀求警察而警察不管,一次一次地劝告诵经的妇人而妇人不睬;那么,你说;他可以 搬家——别开玩笑了,台北什么地方可以让人安静度日?于是,日日夜夜受噪音的煎熬, 又丝毫没有改善的可能,他到底该怎么办? ※ ※ ※
苏格拉底那个老头子被判了死刑之后,不愿逃狱,他说:"当我对一个制度不满时,我有 两条路:或者离开这个国家,或者循合法的途径去改变这个制度。但是我没有权利以反抗 的方式去破坏它。"(见《难局》,二月五日"人间") 不错,苏老头是个循规蹈矩的模范公民,但你是否注意到,做个好公民有两个先决条件: 首先,不肯妥协时,他有离开这个国家的自由;其次,这个国家必须供给他适当的管道去 改变他不喜欢的制度。也就是说,如果雅典政府既不许他离境,又不给予他改革的管道, 他就没有义务片面地做个循规蹈矩的公民。 那么我们的情况呢?台湾的生活环境恶劣,升斗小民所面临的选择与苏格拉底没有两样: 他可以离开台湾,但这有大多实际上的困难。他可以"循合法途径"去改变现状—— 我们有没有这个合法的途径、畅通的管道? ※ ※ ※
一位医生来信叙说他痛苦的经历。住宅区中突然出现一个地下铁工厂,噪音与废气使整个 社区变色。他从私下的恳求到公开的陈情控告,无所不试,结果,等于零。这个机构说法 令不全,那个部门说不是他家的事,警察更说开工厂的人可怜!这位医生伤心绝望地问: "政府到底在做什么?法律究竟在保护谁?" 连十七岁的高中生都理直气壮地说:"反正没有用!我要到美国去!" 你不为我们的前途担忧吗? 这份绝望的无力感是谁造成的? ※ ※ ※
许多人或许会把箭头指向政府——营建处、环保局、卫生署、警察局等等等,可是我不能 ,因为我的知识领域狭窄极了;我根本不知道垃圾有几种处理方式、食品进口要如何管制 、努力调动要如何分配。我不是专家,没有资格告诉这些在位做事的人怎么去做。 但是和你一样,我是个有充分资格的公民。无力感的根源或许是个鸡生蛋、蛋生鸡的问题 ;你或许觉得缺乏畅通的管道咎在政府,我却认为,你和我之所以有无力感,实在是因为 我们这些市并小民不懂得争取自己的权利,纵容了那些为我们做事的人。咎在我们自己。 大多数的中国人习惯性地服从权威——任何一个人坐在柜台或办公桌后面,就是一个权威 。我看见学生到邮局取款,填错了单子,被玻璃后的小姐骂得狗血喷头。这位学生唯唯诺 诺,惊恐万分。我也看见西装笔挺的大男人到区公所办事,戴眼镜的办事员冷眼一翻,挥 挥手:"去去去!都快十二点了,还来干什么?"大男人哈腰赔笑,求他高抬贵手。我更知 道一般的大学生,在面对一个拆"烂污"的老师时,不是翘课以逃避,就是附和以顺从。 到邮局取款,拿的是自己的钱,填错单子可以再填,学生为什么却觉得办事小姐有颐指气 使的权利?区公所的职员,不到钟点就理应办公,大男人为什么要哀求他?学生缴了学费 来求知识,就有权利要求老师认真尽职,为什么老师不做好,学生也无所谓? 所谓政府——警察局、卫生署、环保局——都是你和我这些人辛辛苦苦工作,用纳了税的 钱把一些人聘雇来为我们做事的。照道理说,这些人做不好的时候,你和我应该手里拿着 鞭子,睁着雪亮的眼睛,严厉地要求他们改进;现在的情况却主仆颠倒,这些受雇的人做 不好,我们还让他声色俱厉地摆出"父母官"的样子来把我们吓得半死,脑袋一缩,然后大 叹"无力"! 连自己是什么人都不知道,连这个主雇关系都没弄清楚,我们还高喊什么"民主、伦理、 科学"? ※ ※ ※
每天清早,几万个衣履光洁的人涌进开往纽约市区的火车到城中上班。车厢内冬天没有暖 气,夏天冷气故障,走三步要抛锚两步,票价还贵得出奇。可是因为是垄断事业,所以日 复一日,年复一年,人人抱怨,人人还是每天乖乖地上车。一直到史提夫受不了了,他每 天奔走,把乘客组织起来,拒乘火车,改搭汽车。同时,火车一误点,就告到法庭去要求 赔偿。他跟铁路公司"吃不完,兜着走"。 史提夫没有无力感。 ※ ※ ※
安东妮十三岁的女儿被酒后驾车的人撞死了。因为是过失杀人,所以肇事者判的刑很轻, 但是安东妮只有一个不能复生的女儿,这个平凡的家庭主妇开始把关心的母亲聚集起来, 去见州长,州长不见,她就在会客室里从早上八点枯坐到下午五点,不吃午餐。两年的努 力下来,醉酒驾车的法令修正了,警察路检的制度加严了。别的母亲,或许保住了她们十 三岁的女儿。 安东妮也没有无力感。 ※ ※ ※
我并没有史提夫和安东妮的毅力。人生匆促得可怕,忙着去改革社会,我就失去了享受生 活的时间。大部分的时候,我宁可和孤独的梭罗一样,去看云、看山、看田里的水牛与鹭 鸶。不过,我们不做大人物,总可以做个有一点用的小人物吧?一个渺小的个人,如你, 如我,还是可以发光发热。过程会很困难,没错;有些人会被牺牲,没错。可是,在你没 有亲身试过以前,你不能说"不可能"!在你没有努力奋斗过以前,你也不能谈"无力感"。 问问史提夫,问问安东妮。 讲"道德勇气",不是可耻的事,说"社会良知",也并不肤浅。受存在主义与战乱洗礼的现 代人以复杂悲观自许,以深沉冷漠为傲;你就做个简单却热诚的人吧!所需要的,只是那 么一丁点勇气与天真。你今天多做一点,我们就少一个十七岁的说:"反正没有用,我到 美国去!" 美国,毕竟不是我们的家。 -- 最想要去的地方,怎能在半路就返航?
名妓、名媛和婊子
谁也没想到,中国2010年最火爆的消息不是什么中美两国经贸纠纷,不是谷歌PK中国新闻检查,也不是海地大地震,甚至也不是丰田车出事,而是京城里最近闹出的那场名人之间的风波。 本人从来不看花边新闻,这一次眼球也给抓住了,可见这场风波之精彩出众,激烈非凡。
这场风波到底是婊子PK戏子,还是名旦PK名媛,现在公众还没有定论。 但从目前的爆料来看, 双方都不是什么清纯玉女,更不是妇道人家。 虽然谁胜谁负已经基本上见分晓了,但不能保证今后没有更精彩的爆料。 所以好戏还有得看。
要看戏至少要明白一场戏中的主要角色。 这场戏中的角色有些特殊。 为了搞清楚这些角色,本文介绍三个重要的概念:名妓、婊子、和名媛。
什么是名妓呢? 名妓本质上也是靠出卖肉体为生的妓女,只不过妓艺高超,达到了炉火纯青的地步,所以就被人们称为名妓。名妓首先必须是天生丽质,袅娜娉婷、楚楚依人,沉鱼落雁,闭月羞花,一笑倾城,二笑倾国,三笑城国颓倾。 有的时候,名妓还要精通房中之术,床第功夫一流,既可以把男人伺候得欲仙欲死,又不至于淫乱宫闱。 最后,名妓还要身手不凡,既会琴棋诗画, 又长袖善舞,知书达理。 总而言之,名妓是上得了龙床,下得了茅房的高级妓女。 中国历史上出了无数名妓,如苏小小、谢阿蛮、霍小玉、杜秋娘、柳如是、章台柳、刘婆惜、杜十娘、卞玉京、董小婉、陈圆圆、赛金花、小凤仙等等。 这其中不乏善良正直、忧国忧民的名妓。 旧时代妇女的命运不由自己掌握,坠入青楼多为生活、命运所逼。 但她们之中也有人良心未泯,利用自己的特殊身份干出惊天动地的大事的。 当然,这不过是名妓中的另类。 大多数名妓是永远不会有良心发现的,能不纵容她们的男人祸国殃民就很不错了。
什么是婊子呢? 咋一看婊子很像妓女,多半也是以卖X为生,但档次要低得多了。 婊子又名二奶、小三等。 其实,人们对于婊子有许多误解。 并不是所有和别人老公发生关系的女人都是婊子。 女人和别人的老公睡觉不外乎两个原因:(1)性爱的原始冲动 (2)为利益所驱动。 出于原始性爱的婚外情最多不过是太傻、太痴情或太骚,大不了是个骚女人而已,算不上婊子,况且多数情况下还是臭男人的错。 纯粹出于利益驱使和任何男人发生关系的女人,就是婊子了。 那么,婊子与妓女最大的区别是什么呢? 妓女出卖自己的肉体多半出于无奈,实在是走投无路了,只好坠入青楼。 这是被动的。 而婊子却常常是主动的。 婊子往往并不愁衣食,甚至有不错的收入。 但她们却可以随时随地把裤子一脱和任何可以给她们带来更大利益的男人上床,拿自己的肉体换取更多的利益, 她们是一群无耻的女人。 婊子和妓女的根本区别在于,妓女只卖肉而不卖心,婊子既卖肉也卖心。 一个女人被迫当上了妓女还有从良的可能性,但一个女人一旦当上了婊子,就彻底没救了。 所以,历史上有的名妓身在青楼心系江山社稷,有的名妓为爱殉情,但你有听说过任何一个婊子有过任何轰轰烈烈的壮举吗? 照我说,婊子不过是一群上得了官场,搅得乱情场的贱货。
但婊子再贱也是人。 虽然她们以卖X为荣,但她们心底里也知道自己有多贱。 被人们在背后指指戳戳的味道也不好受。 夜深人静之时她们也有烦恼。 几千年来,“既要当婊子,又要立牌坊”一直是婊子们的梦。 无奈中国社会越发展,婊子们的地位越低下。 1955年中国开天辟地实行了一夫一妻婚姻制,婊子们更步履维艰。
但是,到了公元21世纪,风水轮回转,婊子们解放了! 她们的梦想终于实现了! 突然间,婊子们成了被社会尊敬、羡慕又惧怕的一群高尚的女人。 谈论自己和人家的男人上床的经历已经成了中国社会婊子族的时髦。 今天的婊子可以堂堂正正地宣称“我爱我的先生,虽然我们没有结婚,但这并不妨碍我为他生一个孩子,孩子是我们爱情的结晶!”(尽管她那位先生法定是别人的) 。 “我爱他,我愿意为他生孩子,这碍着谁了?”成了中国公元2010年的最强音。 什么婚姻法,什么一夫一妻制,什么家庭观念,什么礼仪廉耻,统统成了不入时的垃圾。
京城的婊子一夜之间成了京城名媛。
什么是名媛? 名媛是出身而不是职业。 名媛一词出自于清代李渔的《风筝误•艰配》:“婵娟争觑我,我也觑婵娟,把帝里名媛赶一日批评徧。” 名媛就是上得了厅堂,出得了闺房的名门闺秀。大观园中的黛玉小姐是名媛,闺中的宋庆龄、宋美龄是名媛,袁淑祯、袁静雪是名媛,赵四小姐是名媛,蒋碧薇是名媛,吴健雄是名媛。 红色贵族中,洪晃她妈是名媛,林立果他姐是名媛,毛新宇他姑姑是名媛,李小琳马马虎虎也算半个名媛吧。
那京城的赵小三凭哪一条算是名媛?
名媛会做泼墨那种下三烂的事情的吗?
古时候,一个默默无闻的宫女被皇上临幸了,皇恩便开始浩荡到她的身上。 要是怀上了龙种,从此妾便以子贵,苦尽甜来。 那虽说不尽风流,但也还算是名正言顺,毕竟人家进宫是办了正式手续的。 如今一个三流戏子被一个过气老帅府里的什么人(反正是别人的丈夫)搞了几次,包了几年,弄出个私生子,居然摇身一变,成了京城富甲天下、呼风唤雨、兴风作浪的贵妇了。 今天就连京城的皇家御林军都要甘拜下风,为这贵妇冲锋陷阵,保驾护航。 而一向对花边新闻大开绿灯的中宣部这一次也破例管起了这件事,开始清理网上的传言了。 半个国家都在为这位小三效劳。 这什么狗屁世道! 啥玩意嘛。
以前皇帝的女儿敢这么凶吗? 不敢。 这位小三不就是一个睡人家男人, 拿人家点施舍,靠着人家的权势狐假虎威的高级婊子吗? 幸亏临幸她的不过是过气老帅府上的某人而已。 她要是早生几年,被先帝给看中,又被先帝临幸了,那她还不成了当今国母,三军女帅,我们都要高喊女皇万岁万万岁? 遗憾啊,差来差去就差了个名分,导致她名不正言不顺,以至于她再说她跟她“先生”都“结晶”了,却还是不敢公布她“先生”的尊姓大名。 尽管她身着DIOR的网眼连衣裙,用PIAGET的珠宝腕表衬出自己的风采,还是不能掩饰她的职业:小三,或者说婊子。 不过婊子能做到这个规模,这步田地,也算是出类拔萃了。 所以说她是个“国婊”应该比较贴切。
至于那个国际章,我提都不想提。 如今,在中国连做婊子都不是什么见不得人的事情了,她的那些事情还有什么好谈的。 即使没有这场风波,她也谈不上清纯二字。 她又不是不知道她“姐姐”的底细,可还是自己找上门去,白沾了一身骚。 就算人家是诬陷她,可诈捐那件事是铁板钉钉的吧。 更何况,假如她跟她“姐姐”合伙的生意要是做成了呢? 要是那些传闻千真万确呢? 那我们就对她刮目相看了。 那些事情如果是真,那她就不是国际章,而是国妓章了。 但尽管那样她还算不上是个名妓。 杜十娘、陈圆圆、赛金花、小凤仙会做出诈捐那种丧尽天良的事情吗? 不会的。 所以说,她充其量最多是个国妓。 反正这个国家逼良为娼又不是一天两天的事情了。
但是比起国婊赵,国妓章还是嫩了点。 这场风波后还是跟着姐姐学着点为好。
一个国婊要PK一个国妓,这样的新闻不火爆也难。
肖申克的救赎(觉得写的还不错)
昨天看了,很有意思,写一篇读后感,主要从社会运作的角度看。新开个主题。呵呵。如果是原来年轻时,看后可能主要会是愤怒,现在看了,有时候想笑。几个人物的命运,1.先说那个图书管理员,在监狱里呆了几十年,已经习惯了那样的生活,出来反而不习惯社会,最后只好自杀了。他也想再回到监狱里,回到旧有的习惯了的生活里去。不过可能也厌倦了,没有力量再做一次小案件以便回去,最后选择结束生命,他已经感受不到任何继续存在的价值。依赖于习惯,被惰性抓住,显然是我们人类的通性,当年美国解放黑奴,其实很多奴隶也是不习惯被解放的,因为解放后就要自己选择自己做决定了,没人可以依靠,不习惯。计划经济下出来的人,到市场经济中,要完全自己做主,也是不习惯。差别是有些人能克服习惯,有些人不能,就渴望回到老的习惯生活中去。克服习惯,找到方向,驾驭自己做master而不是slave,并不容易。这一点,可能每个人都有体会。要不为什么少人愿意当老板呢。
2. 下一个就是那个警官,一直都是一个强硬的角色出现的,打人毫不手软。最后被带走的时候,电影对白里说:那家伙哭的象个娘们儿。看国内刚解放剿灭土匪的案子,也有这种情况,当年那个胡传魁的原型,杀人不眨眼的家伙。被抓住的时候,也是瘫软到稀烂。当时的公安人员说,这好像是个通例,很多原来十分残暴的人,倒下的时候都是软的一塌糊涂。残暴和软弱大概都反应他们内心的自我疏离,被莫名的习惯力量所控制,两个极端表现其实都是失控的状态。可以算为病人。
3. 监狱长,精明算计,一切以自我的利益为出发点。某种程度上也追求荣誉和外界的赞扬。内心深处也有隐秘的冲突。其实社会上很多官僚是属于这样的人,在官僚体系运作中,冷酷无情,不惜牺牲别人的生命,来维护自己的“什么东西呢”,钱?地位?但他其实还是在乎社会评价,只不过社会评价价值体系对他来讲是个外在强加的东西。不明所以然。所以事发后,崩溃而自杀。自杀应该是内心冲突的表现。
4.那个黑人,一时冲动犯了罪,其实是有street smart的人。也有人情味,只是没受过教育。他一直基本是保持清醒的,或许是本来就没有太多虚幻的期待。几次假释面谈,很有点幽默,每次他试图顺着审问官的需要去说,总是reject.最后鼓足勇气直抒胸臆,反而approved.我边看边想,面试的时候要注意这个。不能让人觉得你故意在顺着他说。让人疑心你背后到底有什么。哈哈,幽默。
5.普通囚犯。基本上是属于认命的主流。朦胧中过日子,把命运交给别人管理。
6.主角Andy.这个人最有内容,所以放在最后。看完电影,想到一个名词:社会工程师。原来美国的律师就是社会工程师么。他们是理解美国社会(“法律社会”)的关键。打个比方说,就像电脑工程师知道系统哪里有bug一样,他们也知道这个社会是如何设计的,哪里有back door,如何可以建立档案和身份,信息如何流通。他知道那个税务系统、法律系统如何工作,6万块钱怎么才能免税。各种表格如何填写。看来他是深深明了这个社会是如何设计的,说起来律师们是属于立法者的一群,所谓社会的立法者,就相当于电脑的designer。他的水平类似现在的电脑黑客,知道如何钻社会体系的漏洞。(这一点我并非同意他的做法,不过现在能区分合理避税和钻漏洞的差别,合法和非法的差别了)。(实在说,我是计划经济长大,并受影响极深的人,在市场经济下,那个税务如何工作,就应该像学习电脑如何工作一样,要费心“自己学”的,这是最近才认识到。)从电影角色上讲,是立法者被司法者判了刑,又被执法者监管了起来,然后立法者又帮助执法者解决解法律、税务问题最可怜的是执法部门,监狱的狱卒,对法律系统基本茫然,因公配个枪,还要上税。让他干啥就干啥。相当于电脑打字员,电脑如何运作的,一片茫然。每天只要上班打字,或每天上班开车运囚犯就对了。就是这种社会背景下,主角因误判被抓进去了。Andy的最大特点是,有信心,有技术(知道系统如何运作),有智慧:知道这个系统有bug,而且知道必定会有bug。这是他后来能逃出去的基本个人素质要求。有信心,热爱生活和自由,所以他没有放弃。如果放弃了,就没后面的故事了。有技术,这强有力地支持了他的信心,因为技术,他才能在那个环境中通过帮助别人甚至是自己的敌人而有力地改善了自己的环境地位。有智慧,这个很重要。表现在他充分理解这个社会系统的设计是有bug的,这次一个故障把自己给卷进去了,并非完全不可接受。他没有把这个当成纯粹针对个人的事。也就是说He didn't take it personally. 就像一个电脑工程师发现自己设计的软件漏洞误扣了自己的钱一样,他基本是很冷静地接受了这个现实。哭是要哭,就像莎士比亚说的:我们出生时,因为降临到这个由笨蛋们设计的世界里而哭泣。但哭完后他就冷静了:妈的没办法,世界不完美。所以在开始的时候他并没有把那些警官甚至监狱长当成敌人。他充分了解人性弱点和制度的缺陷。了解缺陷,是智慧的起源。否则你碰到缺陷,就会气得要自杀了。我们崩溃是因为自认为不该发生的事情发生了,如果知道事情早晚会发生,当然就不会崩溃了。就像丘吉尔所说:“民主是个不好的制度,但是,还没有发现比它更好的制度,所以我们不得不用它”。实际上,丘吉尔的话,后面隐含了多少人类知识的结晶呢,多少代思想家哲人,日复一日,年复一年的探索,为什么要社会民主,要言论自由,三权分立,社会契约。当丘吉尔说那个话的时候,大概他们比较社会制度就像电脑高手比较操作系统一样,是有所根据和考量的。社会工程师的任务就是,面对现有的零件,你能设计一个什么系统,让大家运作地良好就是了。设计师一定要考虑,可用的零件都是不完美的个体。好了现在主角承认现实。今天我掉到坑里了,怎么生活下去,并想办法出去?
1.首先,在能保持尊严的时候,他一定尽量保持。比如跟那帮恶人打架。再入用自己的知识跟人换点啤酒招待大家。
2. 他骗了所有的人说,自己有个hobby:喜欢刻石头,那帮好心的囚犯还替他找石头呢。直到最后才知道,石头主要还是用来挖洞的吧。此属于处心积虑。之一。不能让人知道的事情就不能让任何人知道,此属于不得已,没办法。切切。
3. 不因系统的失误而惩罚自己,熄灭生命的火焰。所以他持续不停地申请图书馆建设。保持内心的不被玷污以及自身的活力。这个也很好,毕竟要活下去,即使是在监狱里。这还是要点热情的生命力的。这个要学习。
4. 不因自己的失误而惩罚自己,他充分意识到自己在妻子遇害这个事件中的影响,是他的个人当时情感的封闭,把妻子推到了别人那里,但也清醒知道自己不是凶手。所以没有陷入内疚的陷阱。很多人在他那种强烈的挫折下,会陷于内疚而不能自拔,自我惩罚。而他选择了一条正确的路,就是从此做正确的,而不是后悔以前的错误。这需要智慧,勇气,热情。值得学习。
5. 那个年轻人的到来,是个转折点,他先是充满希望地找到监狱长,没想到监狱长是那个反应,愚蠢!愚蠢?到那个年轻人因为可能作为证人而被杀害而自己也被关小黑屋1个月的时候,我产生了一定的绝望心理,不知道如何才能伸冤。设想过我如果在此情况下,能怎么做呢?趁着有外人参观的时候,跑上去伸冤申述?肯定不行,人家把你当成神经病,或者认为这就是普遍情况:谁不觉得自己冤?写信?他申请图书馆的信都是要通过监狱长送出去的。也没门。实际上正常的渠道已经堵死。这之后他又想明白了,妈的没办法,系统不完美,个体不仅仅是不完美,甚至是在执行错误的程序。这是智慧,他又冷静下来了。(设计台词,waichi在旁边说,赶快解脱吧,解脱了就没事了) 好像是从此他才开始挖洞。
6. 逃出去后,财务问题已经不成疑问了,知道他是个财务高手。不过还有个问题,真相怎么散布出去,我还想了不少时间,根据中国的经验,总觉得毫无出路。后来才看明白,毕竟人家是社会工程师,知道社会如何运作。那递给银行职员的包裹,大概都是寄给报社的。这反映了新闻自由是多么重要。没有新闻自由,黑幕更不知道要掩盖多久呢。所以这个电影让我意识到记者是干什么的,无冕之王原来有这个作用。还是好的。社会该有的功能还是有,虽然好多缺陷。你能指望什么呢,狱卒因公配个枪,还不知道自己该不该免税。社会成员都基本是这样的知识水平,能怎样呢?
7. 差点忘了这点,他在那个石头下面放上信和钱,还是很需要信心的。能克服对失望的恐惧而继续怀有希望。这很感人。
8. 结语。主人公是一个有技术,有智慧,热爱生活的人,生活在不完美的社会里而不忘追求自由。值得学习。人是不完美的,社会是有bug的,认识到这个社会是如何设计运作的,在绝望中寻求希望。如是。
--※ 修改:·freeman08 于 Feb 23 17:04:22 2010 修改本文·[FROM: 76.68.]※ 来源:·BBS 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 76.68.]