20120730

名字相关的一些事

名字相关的一些事

很多明星从艺之后都要起个艺名,最好能过目成诵的。比如施瓦辛格就曾经给自己起名叫做"斯壮
(Strong)"。这反映了命名中最困难的部分。命名中最困难的部分不是名字容易被忘记,而是名字与那个人的对应更难。凡是初高中背过政治题的同学可能都有同感,答案并不难背,关键这答案是哪道题的呢。

题外话。不少同学问我,你咋不整个笔名啥的呢。像"杨贵福"这样的名字,简直比最好的艺名还要好,能真正过目不忘,而且重名巨少,万万改不得。

1. 命名的意义所在

那么,我们为什么要为万物 (也包括万事)命名呢。命名使我们在讨论对象时更简洁,是一种重要的抽象方法。比如,提到一个地名,"我下午张守备修筑的城墙那开工啊"就很麻烦,如果简称为"张家口"就简单多了。类似的,石家庄、二道沟?

这也是为什么程序员要为变量命名的原因。不然,"我打算向内存地址8000写入一个值,恩,作为表达范围0至65535的一个整数42",这确实挺麻烦。于是,我们把这种特别常用的功能抽象出来,起个名字。"unsigned
int a=42;"。8000呢?因为不重要,所以屏蔽了,不让程序员看到,这样更易于集中注意力于真正的业务逻辑。

所以,当我们打算再次提到某个变量的时候,就需要为它命名;或者说,当我们意识到将要再次提到某个变量的时候,我们就应该命名它了。

2. 名字的变迁

使用名字的一个前提,是对话的大家对这个名字有共同的认识。即这个名字对应相同的概念的内涵和处延,不然也挺麻烦。

因为俺们计算机学科也是有历史的学科了,好几十年,诸侯纷争,所以也颇有些历史原因的名字了。比如到底啥是"实时"就有好几种观点,大家都说别人是错的。

人类历史也挺长的,所以类似的事也不少。比如希腊北面有个国家,叫马其顿。当年马其顿是个巨牛的主儿,打遍当时的"人类"所知的天下无敌手,而且没几年就完成了,只一代人的时间。可能有些同学对马其顿这个名字有点陌生,提一下它的领袖大家一定印象深刻,他们的头目名叫亚历山大。对,就是那个亚历山大。问题来了,直到今天,希腊仍然不承认北面这个叫"马其顿"的国家与历史上那个巨牛的"马其顿"有关系,而马其顿人民当然不这么看。是不是有同学想起了韩国?

亚历山大的另一个与名字有关的事。这位大哥当年曾经向波斯王大流士索要过亚洲的主权。注意,不是波斯的主权,而是亚洲的。索要什么东西,对话的另一方自然得是全权所有者。这就让人猜测,亚历山大心里的亚洲,可能就是到印度前的那么大块地方。西伯利亚、中国、甚至印度,可能在他的概念中根本不算亚洲的一部分。至少日本韩国东南亚什么的,可能都不存在吧。

但是时值今日,亚洲的概念大家估计都能背下来了。乌拉尔山-乌拉尔河-高加索山-里海-黑海-土耳其海峡,苏伊士运河,白令海峡。

程序代码在成长的过程中,也经常发生这样的事。最初以为某个变量、函数是干这个的,过了一段时间发现,其实它是干那个的。如果名字不变,引用它的时候就会觉得非常奇怪,为什么一个叫做
PaintProc 的函数,即不是消息响应函数,同时也 不是/不只是 用来画图的呢?

有的时候,我们嫌麻烦,就不改了,留给后人无穷的麻烦。

比如 c++ stl中有个 endl。看名字,它的含义再清楚不过了, end
line。但是有一次,刘同学还是王同学,调程序的时候发现,printf ("\n") 与 cout << endl
的行为很有些不同。有的同学看到这里可能皱眉头不以为然了,因为你可能看过这两段代码的运行行为,没啥不一样。它们二者相同的,是功能性需求部分,但是非功能性需求方面略有不同。有同学可能以为只是性能不同。不仅是这样。

手册说:"Additionally, for buffered streams, endl flushes the
buffer",参见[http://www.cplusplus.com/reference/iostream/manipulators/endl/]。而printf中的"\n"可没有flush缓冲区的作用。

这就导致刘或王同学发现,在某个时刻,上位机程序读设备时输出的东西不一样。因为printf那个还没有flush,看不到。

应对这种需要,"重构"中有一个专用于改名的方法。

3. 名字的意义

之所以要改名,因为名字除了唯一标识的作用以外,还带有别的意思。比如"杨贵福""霍去病"这样的名字,大家一看便知命名者的意图。

改过名字的施瓦辛格后来把名字又改回去了,据说是因为他认为如果真的牛了,观众自然会记住他的名字。我恶意的猜测,可能还有个理由,他的名字对于美国观众而言,似乎具有异国情调。

用不同的名字称呼同一个东西,还能标识出一个人的身份
(或者自我认同吧)。比如《中国好声音》中就有人把"小样"称为"demo",后来一期又改为"小样"了。再比如吊威亚,以及所有在汉语流中使用英文的家伙。他们要么是太习惯了,要么是在标明什么。

类似的表态包括这样的一些词,它们都在表明,我们不是可啥啥那么俗的东西:理念 (不是哲学) 、举措 (不是措施) 、BL (不是同性恋)
、波希米亚 (不是捷克或者吉普赛) 、披头士 (不是 甲壳虫)。

这很重要:) 要不然,韩国也不会把首都的中文译名改来改去,把日本海改名为东海。这些,都体现了命名者和名字使用者的意图。

所以,程序代码中的变量命名,是依据用途、意图、动机,其次其次其次才是依据 实现手段。

所以,printf 这名字中,print占了主要部分。f是format,也是实现的效果,而不是方法。类似的,puts估计是 put string。

回顾一下我们自己在程序代码中的变量名,多少有点向 int_a 靠拢。

使用什么名字,有时能表明你的立场,如下;有时,能表明你对学科或项目的的理解。比如,某个同学的项目可能这样命名,"android游戏开发",这一看就是重点在于练习android,或者注意开发平台上与众不同。老师就可能得出结论,这一项目的动机是提高同学自己,而不是解决一个他人的问题。

4. 名字空间

因为大家都起名字,名字就越来越多了。我们的词汇量都不大,而命名不允许重名,所以,如何命名就成了个难题。需着工程生成,代码里这样的名字越来越多:
list1, list2, list3... list_ok, list_real_ok。

这让我想起几件事来。一件是周老师前两天博客里提到的。暖房子改造的时候要求房顶不能有热水器,但是热水器的主人们拒绝临时拆掉,甚至拒绝承认那个热水器是自己的。后来周老师一家家跑,说尽好话,种种麻烦,总算都整好了。周老师很是感叹了一翻。关同学看了我转的周老师博客,第一天很奇,杨老师啥时候变这么温柔了呢,第二天一看,恩,果然,转的博客。

我会怎么处理。没有认领的,贴个条,24小时自己拆了。不然直接推楼下扔垃圾堆里。有人认领的,告诉他一个常识,楼顶是大家公用空间,他没有权利独占,24小时自己拆了,不然我拆。如果我住楼顶的话,我可以把楼顶也拆了。

类似的,在写程序代码中,全局变量要特别慎重使用。原因无他,那是大家的名字空间,你用了,别人就不能用了。而独占公众资源,必须经过所有人的同意,因为你剥夺了别人使用的权利。

zhumao同学提到,在大型一些的项目中,他看到专业C程序员的函数都会声明为static。为什么?因为这样就限制了这个函数名只在这一个文件中起作用。为什么要限制自己,给自己添麻烦呢?为了方便别人。或者说,我们没有权利限制别人的权利,名字空间是大家的。

再类似的,小区的绿地为什么不能种蔬菜。因为那是大家的地方,你不能假设大家看着你的黄瓜茄子土豆会心情愉快,尤其有时还有泥土和粪的清香。"你的"黄瓜茄子土豆长在"大家的"土地上,长出来以后随便摘着吃么?我猜有的同学可能会说,"随便啊,大家随便吃。"我想问,我可以不打招呼就吃么。如果那是大家的,为什么必须应该向你打招呼呢。

小资们把自己家阳台向外扩出半米的时候,我在他们的脸上看到了几十年前农民把自己家的篱笆向别人家推进一垅沟时的窃笑。

还有,以前在电影电视看到过跑步的老外常戴个耳机听音乐,我就想,这玩意不安全呐,有汽车在身后听不到。最近我看到了中国特色的版本,完全避免了这个问题。中国特色的MP3是有外放喇叭的,可以声闻二十余米,根本不需要把自己的耳朵包起来。使用者洋洋得意地放歌的时候忘了,空间是公共的,而不是他一个人的。我热切地盼望着这玩意人手一个,然后大家开始掐架,"你TM地小点声,我的听不到啦!"

--------------------

博客会手工同步到以下地址:

[http://giftdotyoung.blogspot.com]

[http://blog.csdn.net/younggift]

20120729

名字相关的一些事

名字相关的一些事

很多明星从艺之后都要起个艺名,最好能过目成诵的。比如施瓦辛格就曾经给自己起名叫做"斯壮
(Strong)"。这反映了命名中最困难的部分。命名中最困难的部分不是名字容易被忘记,而是名字与那个人的对应更难。凡是初高中背过政治题的同学可能都有同感,答案并不难背,关键这答案是哪道题的呢。

题外话。不少同学问我,你咋不整个笔名啥的呢。像"杨贵福"这样的名字,简直比最好的艺名还要好,能真正过目不忘,而且重名巨少,万万改不得。

1. 命名的意义所在

那么,我们为什么要为万物 (也包括万事)命名呢。命名使我们在讨论对象时更简洁,是一种重要的抽象方法。比如,提到一个地名,"我下午张守备修筑的城墙那开工啊"就很麻烦,如果简称为"张家口"就简单多了。类似的,石家庄、二道沟?

这也是为什么程序员要为变量命名的原因。不然,"我打算向内存地址8000写入一个值,恩,作为表达范围0至65535的一个整数42",这确实挺麻烦。于是,我们把这种特别常用的功能抽象出来,起个名字。"unsigned
int a=42;"。8000呢?因为不重要,所以屏蔽了,不让程序员看到,这样更易于集中注意力于真正的业务逻辑。

所以,当我们打算再次提到某个变量的时候,就需要为它命名;或者说,当我们意识到将要再次提到某个变量的时候,我们就应该命名它了。

2. 名字的变迁

使用名字的一个前提,是对话的大家对这个名字有共同的认识。即这个名字对应相同的概念的内涵和处延,不然也挺麻烦。

因为俺们计算机学科也是有历史的学科了,好几十年,诸侯纷争,所以也颇有些历史原因的名字了。比如到底啥是"实时"就有好几种观点,大家都说别人是错的。

人类历史也挺长的,所以类似的事也不少。比如希腊北面有个国家,叫马其顿。当年马其顿是个巨牛的主儿,打遍当时的"人类"所知的天下无敌手,而且没几年就完成了,只一代人的时间。可能有些同学对马其顿这个名字有点陌生,提一下它的领袖大家一定印象深刻,他们的头目名叫亚历山大。对,就是那个亚历山大。问题来了,直到今天,希腊仍然不承认北面这个叫"马其顿"的国家与历史上那个巨牛的"马其顿"有关系,而马其顿人民当然不这么看。是不是有同学想起了韩国?

亚历山大的另一个与名字有关的事。这位大哥当年曾经向波斯王大流士索要过亚洲的主权。注意,不是波斯的主权,而是亚洲的。索要什么东西,对话的另一方自然得是全权所有者。这就让人猜测,亚历山大心里的亚洲,可能就是到印度前的那么大块地方。西伯利亚、中国、甚至印度,可能在他的概念中根本不算亚洲的一部分。至少日本韩国东南亚什么的,可能都不存在吧。

但是时值今日,亚洲的概念大家估计都能背下来了。乌拉尔山-乌拉尔河-高加索山-里海-黑海-土耳其海峡,苏伊士运河,白令海峡。

程序代码在成长的过程中,也经常发生这样的事。最初以为某个变量、函数是干这个的,过了一段时间发现,其实它是干那个的。如果名字不变,引用它的时候就会觉得非常奇怪,为什么一个叫做
PaintProc 的函数,即不是消息响应函数,同时也 不是/不只是 用来画图的呢?

有的时候,我们嫌麻烦,就不改了,留给后人无穷的麻烦。

比如 c++ stl中有个 endl。看名字,它的含义再清楚不过了, end
line。但是有一次,刘同学还是王同学,调程序的时候发现,printf ("\n") 与 cout << endl
的行为很有些不同。有的同学看到这里可能皱眉头不以为然了,因为你可能看过这两段代码的运行行为,没啥不一样。它们二者相同的,是功能性需求部分,但是非功能性需求方面略有不同。有同学可能以为只是性能不同。不仅是这样。

手册说:"Additionally, for buffered streams, endl flushes the
buffer",参见[http://www.cplusplus.com/reference/iostream/manipulators/endl/]。而printf中的"\n"可没有flush缓冲区的作用。

这就导致刘或王同学发现,在某个时刻,上位机程序读设备时输出的东西不一样。因为printf那个还没有flush,看不到。

应对这种需要,"重构"中有一个专用于改名的方法。

3. 名字的意义

之所以要改名,因为名字除了唯一标识的作用以外,还带有别的意思。比如"杨贵福""霍去病"这样的名字,大家一看便知命名者的意图。

改过名字的施瓦辛格后来把名字又改回去了,据说是因为他认为如果真的牛了,观众自然会记住他的名字。我恶意的猜测,可能还有个理由,他的名字对于美国观众而言,似乎具有异国情调。

用不同的名字称呼同一个东西,还能标识出一个人的身份
(或者自我认同吧)。比如《中国好声音》中就有人把"小样"称为"demo",后来一期又改为"小样"了。再比如吊威亚,以及所有在汉语流中使用英文的家伙。他们要么是太习惯了,要么是在标明什么。

类似的表态包括这样的一些词,它们都在表明,我们不是可啥啥那么俗的东西:理念 (不是哲学) 、举措 (不是措施) 、BL (不是同性恋)
、波希米亚 (不是捷克或者吉普赛) 、披头士 (不是 甲壳虫)。

这很重要:) 要不然,韩国也不会把首都的中文译名改来改去,把日本海改名为东海。这些,都体现了命名者和名字使用者的意图。

所以,程序代码中的变量命名,是依据用途、意图、动机,其次其次其次才是依据 实现手段。

所以,printf 这名字中,print占了主要部分。f是format,也是实现的效果,而不是方法。类似的,puts估计是 put string。

回顾一下我们自己在程序代码中的变量名,多少有点向 int_a 靠拢。

使用什么名字,有时能表明你的立场,如下;有时,能表明你对学科或项目的的理解。比如,某个同学的项目可能这样命名,"android游戏开发",这一看就是重点在于练习android,或者注意开发平台上与众不同。老师就可能得出结论,这一项目的动机是提高同学自己,而不是解决一个他人的问题。

4. 名字空间

因为大家都起名字,名字就越来越多了。我们的词汇量都不大,而命名不允许重名,所以,如何命名就成了个难题。需着工程生成,代码里这样的名字越来越多:
list1, list2, list3... list_ok, list_real_ok。

这让我想起几件事来。一件是周老师前两天博客里提到的。暖房子改造的时候要求房顶不能有热水器,但是热水器的主人们拒绝临时拆掉,甚至拒绝承认那个热水器是自己的。后来周老师一家家跑,说尽好话,种种麻烦,总算都整好了。周老师很是感叹了一翻。关同学看了我转的周老师博客,第一天很奇,杨老师啥时候变这么温柔了呢,第二天一看,恩,果然,转的博客。

我会怎么处理。没有认领的,贴个条,24小时自己拆了。不然直接推楼下扔垃圾堆里。有人认领的,告诉他一个常识,楼顶是大家公用空间,他没有权利独占,24小时自己拆了,不然我拆。如果我住楼顶的话,我可以把楼顶也拆了。

类似的,在写程序代码中,全局变量要特别慎重使用。原因无他,那是大家的名字空间,你用了,别人就不能用了。而独占公众资源,必须经过所有人的同意,因为你剥夺了别人使用的权利。

zhumao同学提到,在大型一些的项目中,他看到专业C程序员的函数都会声明为static。为什么?因为这样就限制了这个函数名只在这一个文件中起作用。为什么要限制自己,给自己添麻烦呢?为了方便别人。或者说,我们没有权利限制别人的权利,名字空间是大家的。

再类似的,小区的绿地为什么不能种蔬菜。因为那是大家的地方,你不能假设大家看着你的黄瓜茄子土豆会心情愉快,尤其有时还有泥土和粪的清香。"你的"黄瓜茄子土豆长在"大家的"土地上,长出来以后随便摘着吃么?我猜有的同学可能会说,"随便啊,大家随便吃。"我想问,我可以不打招呼就吃么。如果那是大家的,为什么必须应该向你打招呼呢。

小资们把自己家阳台向外扩出半米的时候,我在他们的脸上看到了几十年前农民把自己家的篱笆向别人家推进一垅沟时的窃笑。

还有,以前在电影电视看到过跑步的老外常戴个耳机听音乐,我就想,这玩意不安全呐,有汽车在身后听不到。最近我看到了中国特色的版本,完全避免了这个问题。中国特色的MP3是有外放喇叭的,可以声闻二十余米,根本不需要把自己的耳朵包起来。使用者洋洋得意地放歌的时候忘了,空间是公共的,而不是他一个人的。我热切地盼望着这玩意人手一个,然后大家开始掐架,"你TM地小点声,我的听不到啦!"

--------------------

博客会手工同步到以下地址:

[http://giftdotyoung.blogspot.com]

[http://blog.csdn.net/younggift]

20120724

注销了人人网账号

注销了人人网账号

我注销了人人网账号,原因是一系列繁琐和失败的操作。

上午登录人人网,转到了 safe.xxx 这样的域名,告诉我账号不安全,得整得安全点。

于是故事开始了。"一个必要的安全升级",乍一看我还以为这是机器从英文翻译过来的。"账号存在高危风险"。

要求我回答 旧密码、新密码、新密码、手机号、输入手机收到的验证码,图形验证码以证明我是人类。

我先怀疑了一下 safe.xxx 是钓鱼骗密码的,不过因为登录不上去,也只好硬着头皮继续。

接下来,我怀疑了人人网的动机。如果只有输入正确的密码才能进入这个页面,那么以上需要输入的信息中,只有 手机号
才是有意义的新信息。我怀疑人人网在强制要求用户手机绑定。而如果我是盗号的人,随便提供个手机就是了。

好吧,我从了。输入手机号,拜求手机验证码。

人人网数次告诉我"已启用的手机或服务超时,请刷新页面或联系客服"。启用?我没有要求启用手机。这让我再次想起手机绑定。

刷新页面,人人网要求我重添上述信息。没有联系客服的方法。我试着用手机登录,上面有区号027的客户长途电话。这就是对"请刷新页面或联系客服"的回应吧。

我只好再从了,连试几次,终于不是超时,短信到了。是宝贵的验证码。

添上手机验证码,人人网说"已使用的手机号"或"已使用的手机"。这是什么意思呢,难道用户不该使用同一个手机么?我再次怀疑,人人网编程的时候也许整错了,这不是账号安全升级,而是手机绑定--同一个手机号不能绑定一个以上的账号,所以,如果手机号用过,就不允许再用了。

我只好又从了,连续用了三个手机号。人人网对每一个手机号说几次"已使用的手机号"或"已使用的手机",然后发给我短信,然后在我输入短信里的验证码以后告诉我,"已使用的手机号"或"已使用的手机"。

再也没有新手机号啦。于是清楚,自己没有使用人人网的资格,因为它需要更多的没有使用过的手机。

"抱着试试看的心理",我试了其他的页面,允许我通过邮箱修改密码,隐私和个人信息修改什么的都还在……那么人人网似乎还在相信我就是这个账号的主人,为什么认定我的账号不安全,并且强制要求我改密码,并且必须通过手机绑定呢?如果不出上述bug,成功绑定的话,人人网就觉得任何一个提供手机号的家伙就是账号的主人了?

最后,人人网告诉我"500 抱歉,内部错误。请刷新页面。 返回首页或报告给管理员"。

我决定注销人人网的账号,这实在太浪费时间了。而且,这让我想起来小学和初高中老师。

笑呵呵走过来,对你说,"唉呀,这不都是为了你好么。"

绷着一张脸,对你说,"你的同学可都同意了,就你,怎么这么没有集体观念呢。"

拍拍你的后脑勺,对你说,"你看,这么长时间积累的东西,你舍得么?"

我恨不得穿越时空回到这些老师面前,回答她们的问题。我舍得,舍得抛下一切,以避免更长久的胁迫。

各位同学,别的地方再见。我在csdn上有个账号,还在发博客,[http://blog.csdn.net/younggift]。我在blogspot上也有个博客,翻墙以后能看到。虽然我自己看不到,但是一直在更新blogspot上的博客,因为不定哪天csdn让我闭嘴呢?

因为已经登录上不去了,所以,只好请各位同学转发。谢谢了。

对了,得说一句,我最近没有关心首都的大水,也没有关心任何社会热点问题。

博客会手工同步到以下地址:

[http://giftdotyoung.blogspot.com]

[http://blog.csdn.net/younggift]

[http://www.renren.com/268966623/profile#pblog]

20120714

pics 美好生活样本

盛夏的中午,整修人行道铺砖的工人师傅蹲在树荫里午休,测绘仪晒在阳光里。

去年的月饼。关注汉堡不变质的同学们看过来。

范同学的DVD机-纯手工功放-纯纯手工音箱。画面最下端的红色盒子,是万用表,稍远点的白纸盒是音箱,上面接了两个喇叭。

范同学的功放。

范同学的音箱

另一个角度

长春某处楼顶,美好生活样本。

生菜

大辣椒

柿子

香瓜

还是香瓜

小辣椒

韭菜

zhumao同学曾在此把脑袋磕出血,然后他进行了如图所示的改造。今天,我也一头撞过去,安然无事。

20120710

只是想要自己喜欢的生活,可是你有资格么?

只是想要自己喜欢的生活,可是你有资格么?

0 努力?扯淡的吧

这博客挺不合时宜的,现在是个所谓自由的时代,大会有些人想跳起来跟我说:
你懂个P啊。其实,我也想对自己说这句话。所以,就当是自我检讨吧。

如果有人对号入了座,我并不是在讨论阿Q的脑袋。

为什么要讨论这种严肃的只有大叔才会讨论问的问题呢?因为一者我真的就是大
叔。二者我有个猜想。我有一段注意到,老家伙们经常谈,"唉呀,我们当年如
何如何努力啊,你们这些小年轻的,怕苦怕累。"那段时间我就想,他们是不是
扯啊,为什么像偶像啊典同学啊,就活得挺好 (还有更早的一些同学活得也非常
好,你们不认识,就不提了),他们也不说应该苦啊累啊的。这些老家伙们是不
是扯淡呢?

后来,通过观察包师弟偶像等诸多人等,我大胆猜想,也许有个可怕的事实在这
后面:所有的牛人都昌异常努力的。那些不努力的,后来都失去了发言权。

所以,我们能听到的老家伙们的发言,全是说应该努力的!

当然,这并不暗示所有说应该努力的都是有发言权的牛人,有些只是自己难受哼
唧两声。比如我。

1 报纸上那个家伙,他想要自己喜欢的生活

前几天看报纸上的情感节目,有个哥们挺惨的的故事,真事,旁边跟了去年还是
前年的报道。故事最开始,这哥们他爸帮他去当兵,回来帮找了个工作。他不喜
欢领导,想创业,老爸说,"老实坐你的办公室吧"。后来把领导揍了,辞职。老
爸又把他跟他女朋友搅黄了,重介绍了一个。他不喜欢这个新的,但是为了"摆
脱 (原文如此)"他爸,就从了。结果女的比他学历高,他气不愤居然忙了一天还
要回家做饭,离了。在他出差的时候,孩子被父母送给了女的,并签字了协议,
说再也不要了。他愤慨不已,离家出走了。

故事讲到这里,我得感慨一句。这兄弟不知道咋想的,协议没有他的签字也能生
效?

然后就哥们在离家之后的几年里,从事过各种职业 (原文不太写实,似乎用了"从
事了所有你能想到的职业",实在太低估我等对可能职业的想像力了),还蹲过监
狱。后来在大马路上遇到抢动的被捅成重伤。护士联系到他家长,家里不管他。

故事还有后文,我就讲到这里了。

记者问他是否觉得自己有不对的地方,他说了两句话,记者印象深刻。一是,"
我不是打爹骂娘的人"。想打爹骂娘,也得有那本事才行啊。工作老婆都是爹给
找的,能打得过么?二是,"我只是想过自己喜欢的生活。"这句话实在太耳熟了。
所以我一听到就想叫某些同学的名字,以为是附身了。

你想过自己喜欢的生活,但是有那本事么?我想天天吃狗肉,一得有钱,二得抗
得住环保还是哪方面善心格外发达的同志们的轰击才行啊。我还想民族国家都贼
拉发达,可是我现在马上想起了日本旅游时的事。

比如这一件吧。去之前,我在办公室研究注意事项条文,有一条,我读出了声,"不
要蹲在地上,会被日本人看不起。啊?他们看不起蹲地上的啊?"蒲老师说,"你
以为你不蹲地上他们就看得起你啦?"

我也想过自己喜欢的生活,但是我没那本事。所以,我成天编程序锻炼身体。万
一哪天打起来,编程序和打架都能派上点用场。而有些同学,除了叫喊着想过自
己喜欢的生活,就没啥行动了。你喜欢,那就去过啊。没有任何人拦着你,拦着
你的是自然的法则。没有人家胳膊粗力气壮的时候,叫喊个啥啊。

也许,按弗什么还有谁的观点,有些同学一直没有长大,始终停留在婴幼儿阶
段,凡是遇到困难,就大喊大哭,自然有爸妈来救。可是,同时,他又已经长
大,拒绝父母替他做出的各种选择。

其实,想过自己喜欢的生活很简单。站起来对所有想拦着自己的人说:"我对我自
己的全部行为负责,请闭嘴。"然后,真的对自己的行为负责,不哭不喊,也不
在心里包屈。

2. 初中回忆

老觉得自己初中是个乖孩子,写到这里,突然回忆起一点离经叛道的事。当年我
曾经在放学以后在教室里写了一黑板,后来被教导处主任不点名批评了。

原因是很多同学上课的时候乐意说话--现在回想起来,我不仅后知后觉很迟钝,
而且发育似乎也晚--吵到我坐第四五排都听不到老师讲课。记得一次生物课实在
听不清,喊了一嗓子"听不着了",然后被生物倪老师批了。恩,又是很多年,长
达十多年以后,我才明白了,啊,这是一件事关面子的事,听不着我也不该喊的。
不过我被教导主任批不是这次。

有些同学,不仅上课的时候喜欢说话,下课的时候还喜欢问题。这就引起了一个
矛盾,在我"幼小"的心灵里。你上课不好好听讲,还打扰到我,下课怎么有脸问
我题呢?

这就是后来我写满一黑板吐槽的主要内容。可想而知,这么有碍和谐团结之类的
事,怎么能放过。所以后来每当小资和愤青们叫喊的时候,尤其是暗示我如何胆
小和不独立思考的时候,我心里就颇不屑,总在想,我追示你们今天追示的东西
挨批的时候,你们连三好学生都不是呢。

为什么突然回忆起这么段故事呢?因为我的同学们想过他们喜欢的生活,(1)学习
够好,(2)上课想说话。二者有不可调和的矛盾,除非有偶像或典同学那样的大
脑,而那样的大脑量非人人得而有之。

嘿嘿。我听到有的同学不屑的笑声了。放心,你也没有那样的脑子,不然,早就
脱颖而出了。

3. 后悔药?

有同学说,"我不说是如何如何么,我现在改了。难道就不能如何如何,比如给
一次机会么?"

机会,从来都不是由另一个人类恩赐来的。

而且后悔这种事,是要跟着付出代价才行的。摔跤,就一定要有响,"咔巴",然
后还有流血。哭不哭,倒是不一定,那得看妈在不在身边看着。后悔了,还想不
疼,那就足以证明没有后悔,只是表演后悔而已。

此外,由于自然法则的约束,有相当多的事情,后悔了甚至无法挽回。或者,按
化学反应的级别,需要上千上万倍的代价,才得以恢复。又或者,通过损失别人
的利益而回复。

还有,通常我一扯这些,同学们就老以为我有挽回之道。不是的。一个例子如下。

N年前在某单位 (鉴于大家还都活着,嘴下留德)工作,建议过"千万别那么干,损
失得老大了,blalba"。领导不听,那就整。整了,然后出事了,损失不小,我的
乌鸦嘴全部应验。

眼瞧着事态继续按我预言地发展中,领导说:你肯定知道有啥办法停下来,或者
挽回吧。

我回到同是技术人员的同事中,说了个笑话:我告诉你巴豆这玩意不能多吃,吃
了狂拉肚子,你非要吃;吃了以后果然狂拉肚子,就以为我一定有招治。

真的,没有。不是我让巴豆产生这个效果的。

有些人可能因为自己经常这么干,所以有一种误解,了解信息的人一定是加害的
实施者或参与者。比如,大人先告诉你小孩玩火尿坑,然后夜里往你身下面倒
水,再把你推起来指着你。

自然的法则不是这样的,他不根据我们的主观愿望和态度有丝毫变更。没有人加
害你,只有你自己而已。过去的你,施加在今天的你的身上;现在的你,施加在
未来的你的身上。

4. 你喜欢的生活

所以,你想过你喜欢的生活,不必告诉任何人,去实施就是了。关键是,你想过
的是什么样的生活,如何才能实现,你如何承担。

--------------------

博客会手工同步到以下地址:

[http://giftdotyoung.blogspot.com]

[http://blog.csdn.net/younggift]

[http://www.renren.com/268966623/profile#pblog]

pics

.

20120704

读 伯罗奔尼撒战争史

读 伯罗奔尼撒战争史

战争发生在公元前431年到前404年,27年;我从4月3日读到到7月4日,92天。

虽然还没有翻开《伯罗奔尼撒战争史》的时候,我就早已知道雅典会最终陷落,
提洛同盟解体,波斯的阴影重回希腊,但是,它仍然一直吸引我读下去。

在每一页纸的后面,修昔底德叙述的声音应该是缓慢而沉重的吧。最初,我只是
想知道作者身为一个雅典人,将怎样面对自己城邦惨败,会如何讲述帝国一步步
由全盛的辉煌走向失败的深渊。后来,我沉浸在各种联想之中。呈现在纸上的,
表面是古希腊的地图,而实际上也是春秋战国;那些操着希腊语的将军们,发出
的是苏秦、班超那样的声音。

城邦各怀异志,战事漫长惨烈。起初,底比斯袭击普拉提亚,提洛同盟和伯罗奔
尼撒同盟各支持一方,雅典与斯巴达开始战争。这场战争旷日持久,将席卷希腊
人所知的整个世界。后来,雅典人修昔底德看到了大瘟疫,看到了胜利,也看到
短暂的和平,还有西西里大溃败时抛弃粮食和战友,抛弃一切,也包括了希望。

战争是怎么开始的?

起初当波斯入侵希腊,各城邦一片失败。兵临城下,雅典人没有放弃,而是断然
放弃了自己的城市和陆地,全体人民都迁移到舰船上,与波斯作海上的搏斗。城
邦们纷纷加入提洛同盟,用船只和金钱支持雅典。

雅典的胜利,还全希腊的自由,同时也逐渐形成了雅典帝国。雅典开始像对待敌
人一样对待自己有盟友。斯巴达在战争中的号召力之一,就是重建希腊城邦的自
由,脱离雅典帝国的统治。而值得注意的是,斯巴达的政体,正是少数人奴役多
数人的寡头政体,他们所反对的帝国的核心城邦雅典,正是多数人当政的全民
(成年男性奴隶主)民主。

所有的争端,修昔底德只是秉笔直书。仿佛他不是一个雅典人,而是高在云端的
天神在俯视人类的争端,他早就知道这样的争端会一层不变地一再发生,这既不
是开始也决非结束。

人类,仿佛就是这样生存,以这种卑微的方式。

很多个冬季,很多个夏季都是这样。几百三桅巨舰直驶向深海 (公海),水手和士
兵们准备掠夺伯罗奔尼撒或者亚狄迦,准备解救盟邦,准备攻击他们甚至还不知
道有多么广大的西西里。他们喊,我们应叙拉古的敌人之邀而来主张正义,私底
下已准备好装战利品的舱室,计划好军功章悬挂在哪面墙壁。

只是出发的时候,他们都无法预料到真正的宿命。宿命,只有结束了的时候才知
道。而我们甚至无法知道何时才是结束。

冬季,然后又是夏季。

伯拉西达战死,伯里克利病死,尼西阿斯投降被杀,亚西比得反复无常游走于大
国之间,最后也被大国所抛弃。

所有的人最后都死了。我们现在可以知道,即使没有战争,他们也一定会死,而
绝无可能活到现在。就像那些笨重的三层五层水手划桨的舰只,最终都会烟消云
散,要么被击沉,要么被俘获,要么腐烂掉。

冬季,然后又是夏季。

曾经面对波斯人能放弃首都的雅典人,向同是希腊人的斯巴达乞降。三十人僭主
集团被扶上马,三十人僭主集团被荡平。苏格拉底之死,不过是其间微小的难以
觉察的声音罢了。

如果历史就这样终结,我会以为修昔底德打算冷酷地见证的一个文明的衰败,表
征希腊黄金时代的结束。当就要合上书页的时候,我突然想到,之后呢?

之后,在希腊一片战争废墟之中,北部的马其顿"蛮人"开始在亚历山大大帝的率
领下征战更广阔的已知的世界,波斯、印度、埃及。再之后,是希腊化时代……乐
曲的终章,直到一千年的罗马帝国灭亡了,还在悠悠地回荡着,并且转调具有了
全新的内容--我们称之为文艺复兴。

那些冬季和夏季并没有虚度。

我们确实进行了无谓的争斗,一次次焚烧再重建城市,把黄金运进神庙再急切地
取出来作为军资。但是,我们也乘坐着当时的古老技术所能达到的极限,深入到
未知的公海之中。我们知道,总有一天,人类会遍布宇宙的每一个角落,等到敌
人的舰船也跟随我们脚步的时候,我们将在公海的风暴里依托我们登陆过的岛
屿,凭借我们习熟的环航战术,截击所有准备逃回避风港的敌舰。

在航向所有人类所未知的领域时,那些冰冷的深夜里摇桨的手,支持过他们的确
实也有贪婪、幼稚,甚至还有恐惧。但是,从遥远的太空,或者透过久远的时
代,我看到修昔底德所描写的,是人类勇敢开拓的雄伟诗篇。

伯罗奔尼撒半岛和爱琴海上的英雄一直在唱着战歌,他们从未死去。他们的歌声
在深空,在原子的底层,还将在更深远的世界回响。

--------------------

博客会手工同步到以下地址:

[http://giftdotyoung.blogspot.com]

[http://blog.csdn.net/younggift]

[http://www.renren.com/268966623/profile#pblog]

20120701

作为程序员,你的价值在哪里

作为程序员,你的价值在哪里

1. 学生时代

程序员以前都是学生,我们从学生时代快结束时讲起。

本科毕业论文答辩时的一个笑话。有女同学翩翩然说,"各位评委老师……"提问和
点评的时候,我作为"评委"的第一句话就是,"对不起,这不是选秀节目,我们也
不是评委老师。"

坐在下面的那些老师 (与非你莫属不同,不是坐在上面),我们一般称为答辩委员
会成员,作为论文答辩(或项目投标、讨论) ,他们与选秀的评委任务不同。答辩
委员会成员,一般不太在意轰动笑果什么的,所以常问一些一再重复的问题,对
谁都问,有时就被称为套话。

这句套话非常之重要,以至于答辩委员会成员经常要求答辩者跳过综述 (你看了
哪些资料,你的工作在学科中的地位,你的工作如何重要等等),而要求直接讲--

"你的工作是什么?"

当年我本科毕业论文的时候也被问过。我卡卡卡卡讲了半天,我用的这个语言有
前途啊,我从事的这个领域也有前途啊,布拉布拉。是的,我用的语言是HTML,
领域是计算机网络,当时连ASP好像还没出来,可见我选择了多么富有远见的方
向。但是,答辩委员会老师忍了半天,就是如今的刘校长问我,"你的工作是什
么?"

我然后就卡壳了。我选择的语言很牛,我选择的方向很牛,又怎么样,那些都是
别人做的,跟我又有什么关系呢?

我当时说,我看了这么厚的一本书,英文的,全看完了。然后才理解了啥啥。老
师们非常和蔼地没理我。

很多年以后,我明白,作为程序员,你学会了什么并不重要,所花费的时间也不
算作你的工作。在这个世界上,除了你的父母,没有人再会因为你学会什么而高
兴,他们只会因为你用学会的东西做出贡献而高兴。

那么,你的工作,你的贡献是什么。

2. 最近的一个实例

某处前两天网站建设会议,我作为技术人员出席,发言的时候只提了一条与技术
有关的建议,其余那些条都是表达网站建设与技术人员关系不大,更多的是美工
和广义上的政治。

唯一与技术相关的那条建议是去除网页上的百度统计,原因是加上它以后网页载
入速度有明显地下降。

最初我不知道里面有百度统计,还问过ZHUMAO,你们那个点个网页,怎么载入的
时候会这么慢。会上,作者同学指出了百度统计的优点:1.能统计出哪个链接点
击的人多,有多么多,比例如何;2.能用热力图展示哪个位置被用户点击多少
下,点击多的地方就更红一些,点击少的地方就更绿一些。

我为什么认为应该去掉百度统计呢?这个东西固然是好,但是它影响性能,更重
要的是,它不是你做的。那个热力图真的形象,漂亮,强有力,但是那是百度的
工作啊,不是你的工作。你的网站架在自己的机器上,容易获得 w3c log,方便
统计出这些数据。如果你用w3c log 统计呢,这就是你的工作了。而且,你同时
也避免了不必要地向第三方泄漏网站访问数据。

你的岗位存在的意义,是选择合适的工具,而不是强有力的工具,去完成任务。
我为什么说"你的岗位"的意义,而不说"你的意义"呢?这可以从一道面试HR乐意
问的问题看出来。HR可能问,"你对薪酬要求如何啊"。一种合理的回答是,"薪
水的多少取决于这个岗位对公司可能的贡献,而不是我的能力。"

克拉克还是超人呢,报社也没有多付他一分钱。

所以,你的岗位期待你选择合适的工具。

3. 什么是不合适的工具

合适的工具是什么,是个太大的话题,以后再聊吧,我们不妨先看看什么是不合
适的工具。

特强大的,众所周知牛的,干啥都行的,这些基本是不合适的。另一种不合适
的,是本科同学们愿意在答辩的时候说的一句,"我为什么选择JAVA?因为我们
就会这个,这课是周老师讲的,他……""就会这个",可不是一个好理由。

同时,也不能逮着啥有名气正流行,就认为它会是好的解决方案。例1,项目课
程里一位同学,打算做俄罗斯方块,或者贪吃蛇。她认为,这一定需要用多线程
来解决。为什么呢?因为你看,方块在起, 同时,还能响应用户的键盘消息。
例2,还是项目课程,另一位同学做扑克牌游戏,觉着需要用access数据库存扑
克牌的当前次序和排序什么的。

这些是"过于"强有力,不适合做这种小游戏的工具。用大炮打蚊子不对的原因之
一,是需要携带这么沉的东西,并非"没有必要","没有必要"这种措辞给同学们
一个错觉,似乎这样也是可以的,只是"并非必要"。不是这样,应该明确指出,
用大炮是"错误的"。

红白机 (任天堂)时代,CPU都那个水平,里面也没跑操作系统,多线程之类的是
肯定没有的。同时响应这一需求,如果我们还没有学到那些知识的话,我们也可
以猜到,一定有更轻量级的工具可以实现。这个轻量级的工具,就是循环,在每
次循环里读按键,如果不是命令,那么重画方块,在新的位置,这样方块就动了。

windows操作系统自带纸牌游戏,从windows 95时代,而且那个时候操作系统里
面肯定不自带access。存序号排序这种事,用链表或数组都容易解决。

有同学可能会说,那我用这个项目顺便练练多线程或数据库不行么?我们应该用
项目练习项目能力,多线程和数据库应该单独练习,或者找适合它们的项目练习。

合适的工具,就是不多不少正适合这个项目的工具。如果它强大到了干啥都行,
那么如果不是它的子集刚好适合你,那它绝不是你的那盘菜,因为它一定复杂到
难以把握。基于同一原理,穷矮挫不该考虑白富美。

3. 什么是不合适的使用工具的方法

试想,表演结束,你走回舞台,聚光灯下,下面掌声雷动。你几次谢幕,全场观
众起立挽留。

答辩委员会不适时地又出现了。它们还会在你以后的人生中数度出现,投标的时
候,经理质询你的工作进度啥的。

答辩委员会里某个亮脑门问,"你的工作是什么?"

"啊呀",你说,"这个简单。你们看到这有个钮么,它的名字叫做开关。按一
下……"

音乐声响起,你继续解释,"这个设备叫做录音机。"

如果你的工作只是选了这台录音机,你就只是行政人员。行政人员是不需要专业
技能的,当他们犯了这方面错误的时候也不会受到指责。

有同学说,我知道录音机的存在,这算不算工作。算呐,当然算。只是你认为这
样的工作值多少钱呢?满世界的人都可以告诉你的经理,免费的或几乎免费的。
如果你比别人早几年知道录音机,可能会好些,至少好日子可以过到录音机满天
飞。

设想另一个场景。还是舞台上,让你再表演的时候,你用自己的手指敲击键盘,
那就完全不一样了。当年杉菜同学 (out了?)就凭这一手震住了高富帅他妈。想
想吧,如果杉同学从衣兜里掏出个mp3接上外放,那会是什么情景。

亲自表演意味着两件事。1.你受过长时间的训练,这些训练不可替代,除非替代
你的人也受到同样或接近长时间的训练;2.你当前真的正在表演,这一工作时间
不可替代。

这就是程序员的价值所在。这也是所有工程师的价值所在。我们选择一种工具,
然后使用它。

讨论观点的时候,大哥以前有个路子,他转引别人的论点,或者说都在这本书
里,你自己回去看吧。如果不是导师指导学生,在面对答辩委员会的时候,这一
招是万万不好使的。如果不你能清楚论述别人的那些观点,并阐述它们与你的观
点及当前问题的联系,是不行的。仅仅说,"子又曰了",只有在高考作文里才有
用。

马利同学前两天转引道,"某位哲学家说过,谁谁谁又说了,在中文里,都可以
翻译为 I think。"当年俺们一位外教说过,写作文不要写"I think",因为大家
只关心你的观点,而不是你的态度,你think不think,who care。

你能用来说服自己的,是信仰,能用来说服别人的,才是道理。工程师的工作不
是让别人跟随自己的信仰,而是为别人创造价值。

如果你借助工具,完成当前项目的目标,你是在使用工具。如果你选择 (或者被
选择)了工具,按了两下鼠标任务就完成了,你不是在使用工具,而是成为了工
具--而且并非你的上级的工具,而是是工具的工具。

最后再讲个工具的工具的笑话,网上看来的,不一定是真事。说中国有个教授到
了韩国。韩国人问了诸多问题,类似你们有钢铁么,有飞机么,有泡菜么,所有
问题都集中于质疑我国的生产力和生活水平。中国教授答:中国和韩国一样,什
么都有,只是没有美军。

前车之鉴。使用工具的时候,我们该想想,我们自己的价值在哪里,什么是我们
的工作。

--------------------

博客会手工同步到以下地址:

[http://giftdotyoung.blogspot.com]

[http://blog.csdn.net/younggift]

[http://www.renren.com/268966623/profile#pblog]

pics

.