有间客栈 This blog is my extension and I will stick to commit.

5三/100

不要在失去后再后悔

今天,我突然很想告诉世界上所有的人,珍惜吧,珍惜爱你的人,珍惜在你身边一直保护你,一直把你当宝贝的人。那个人真的很珍贵。他在你身边的时候,你并不知 道你真的那么爱他,甚至以为自己得到的爱护都是理所应当的,很少意识到他的重要,有时候和他任性和他发脾气,有时候会觉得疲倦,有时候会觉得缺少激情,但 当你再没有他在你身边唠叨,没有人管你,没有人在乎你的病痛时,突然发现,失去了,那个自己其实一直最爱的人。

爱是一场长久的拉锯战,从我们相识到相知,然后是相恋的一路上,就摆下一场战线很长的拉锯战。两个20年甚至更长时间毫无交集的人在一起,难免会争吵, 会有分歧。我们本不是一体,只是因为爱而在一起,然后爱其实并不能就解决了所有的问题。因为我们的个性都太强了,更爱的其实是自己,所以,总是争执个不 停,总是在和对方吵闹之后,发现自己的任性,却又免不了下一次的任性。

如果这个世界上有卖后悔药的,我相信每个人都希望拥有,就可以在每次吵架、冷战之后吃上一颗药,就全部忘掉,重新开始了。真可惜,没有这种药,而且就算 有,总吃后悔药也会产生抗药性,每一次的争吵留下一点伤害,积少成多,就会成为你的负担和他的烦恼。谁都不会把一次小小的争吵记在心上,但是两次三次呢? 很多次呢?所有的争吵到最后都化为委屈,总有一日,会爆发。

26二/103

写给未来儿子的信

儿子,我是你爹!老子现在无聊,又不想看书,刚才又被你爷给熊了一顿,心里很是烦闷,没处发泄,就突发其想先教训下你个小兔崽子,别管老子教育的对还是不对,你TM的都给我听好了,有则改之,无则加勉,不准顶嘴,否则扁你是没商量的!

你爹我现在正值风华茂盛之年头,20岁刚出头,一无所有!!!就连你妈我现在还没有找到呢,所以我觉得现在给你写信的这件事情特牛逼。俗话讲,老子英雄儿好汉,你将来也得象你爹这样有魄力!这是必须的!!!

据你奶奶说,我小的时候有多动症,在娘胎里就表现出来的!成天不分昼夜的在你奶奶的肚子里踢来踢去的,当然这是好事,是生命力顽强的象征,但是我可给你说明白了,别管你将来有没有多动症,你在娘胎里的十个月最好给我低调点,活动筋骨的时候给我小心点,没事少给我乱踢,你踢的可是我媳妇!在有你活动征兆的前期,你爹我会买个笔记本和笔,每踢一次,我就给你记一笔,你踢一脚,老子将来绝对会还你十脚的!我建议你还是把劲给攒足了,想踢等你出来了老子陪你使劲踢! 等你出来后,我给你3个月的时间去适应这个世界的黑白规律,也就是说这3个月内,你可以不分昼夜的吃喝拉撒闹,我不跟你计较,因为你老子我是人,我也没指望你是神,一生下来就能自理生活,但是过了这3个月的时间,你必须的得给老子弄明白啥时候该闹啥时候该睡觉!可不准象你724的那几个叔一样,白天睡觉夜里闹,折腾老子不要紧,关键是不能折腾你妈!你要知道,睡眠决定了皮肤的好坏,到时候给你妈折腾的皮肤暗黄,黑眼圈,都出来了,我非扁你!因为她得找你爹要钱去买化妆品!那东西可不便宜,等你4,5岁的时候,估计你还会有个妹妹,漂亮的妹妹,因为长的象你妈!至于你的长相,由于象我,所以老子也不跟你计较了。但是那时候你必须的得给老子吃壮一点长高点,那样才能保护好你妹妹!我允许你欺负别人的妹妹,但是我绝对不允许别人欺负你的妹妹!所以你最好能成为打架大王!象你爹小的时候那样,打遍全巷子无敌手!将来你回到你奶奶曾经住的那个小巷子,你可以自豪的和大虎,二虎子等人的儿子说:“俺爹原来小的时候经常把你爸骑到下面打” 我希望将来我的孙子,也就是你儿子也可以这么自豪的和他的小朋友说。当然我不是鼓励你打架,但是象保护你妹妹这种事情上,打架是必须的!因为你妹妹被别的小娃欺负了,该不能让老子去打吧,所以报仇的任务就落到了你的身上了!等你6,7岁的时候,应该上小学了吧。好好学习是应该的,但是不是必须的。学着做人才是必须的。你可以交朋友,甚至可以谈恋爱,老子不跟你一般见识!但是不可以随便拽别人小姑娘的辫子,也不可以趁上课的时候踢前排小姑娘的屁股,更不可以谁有糖就跟谁玩!!那事你爹我干过,亲身经历告诉我,长大后是会被嘲笑的。13岁左右的时候你该读初中了,应该是个野气十足的年龄,哎,你能不能告诉我你啥时候能出来,我好算算你能不能赶在曾经带过我的那批老师退休前去读,如果他们还没退休,得,你就委屈点吧。你一准被我送到他们班里。他们可是以暴制暴的高手,把你送去了,老子也就省心多了。16岁的时候,你是你读高中的年龄,老子话可说明白了,如想少吃点苦头,你最好在初中的时候学好点,高中你必须得给老子好好学习将来考大学了。或许这3年你会很鄙视我的教育方式,但是鄙视老子的人这么多,你个小兔崽子算老几!老子不怕你,总有一天你会明白我是为你好!你想想呀,你长的那么丑,长的那么象高学历的人,如果你考不上大学别人就会嘲笑你,他们肯定会说“没文凭还学人家长的丑”!因为你是我儿子,所以我是绝对不允许别人笑你的!你看看那些高学历人才,是不是一个个都长的很丑!

读大学的时候,我不会干涉你的任何事情,条件是你能顺利地拿到毕业证。谈了女朋友,带回来给老子看看,只要鼻子不歪眼不斜四肢健全我都不会反对的。但是你必须得给我带个“主流”回来!那些“非主流”最好离她们远点,不光我不同意,连党和人民都是反对的!国家明文的法律规定,脑残是不能结婚的,所以你带了也是白带。 等你结婚了,趁早给我滚远点,不准成天带着媳妇和孩子来蹭吃蹭喝的,那样我烦,你妈累,劳民伤财不利己的事老子不干!当然经常回来看老子和你妈还是一定需要的,但是别忘了给老子带东西!衣服不要,人民币不稀罕,弄几条好烟几瓶好酒就可以了。带的不好老子会撵人,要是不带,老子会扣下你媳妇和你儿子当人质,你自己看着办! 好了,老子不跟你罗嗦了,该睡觉了!还有些没说到的地方我保留着发言权。你不满意的就放心里,别被老子看出来,不要赶时髦,跟老子搞起义。老子会在萌芽状态就给你镇压下去的!这么多年我没少从你爷那学习镇压起义的方法! 别忘了,姜还是老的辣!何况老子是你爹!…

标签: , 3 评论
26二/100

Make命令选项(留着以免自己忘了)

Make命本身可带有四种参数:标志、宏定义、描述文件名和目标文件名。其标准形式为:

Make [flags] [macro definitions] [targets]

Unix系统下标志位flags选项及其含义为:

-f file  指定file文件为描述文件,如果file参数为"-"符,那么描述文件指向标准输入。如果没有"-f"参数,则系统将默认当前目录下名为makefile或者名为Makefile的文件为描述文件。在Linux中, GNU make 工具在当前工作目录中按照GNUmakefile、makefile、Makefile的顺序搜索 makefile文件。

-i   忽略命令执行返回的出错信息。
-s   沉默模式,在执行之前不输出相应的命令行信息。
-r   禁止使用build-in规则。
-n   非执行模式,输出所有执行命令,但并不执行。
-t   更新目标文件。
-q   make操作将根据目标文件是否已经更新返回"0"或非"0"的状态信息。
-p   输出所有宏定义和目标文件描述。
-d   Debug模式,输出有关文件和检测时间的详细信息。

Linux下make标志位的常用选项与Unix系统中稍有不同,下面我们只列出了不同部分:

-c dir   在读取 makefile 之前改变到指定的目录dir。
-I dir   当包含其他 makefile文件时,利用该选项指定搜索目录。
-h   help文挡,显示所有的make选项。
-w   在处理 makefile 之前和之后,都显示工作目录。

通过命令行参数中的target ,可指定make要编译的目标,并且允许同时定义编译多个目标,操作时按照从左向右的顺序依次编译target选项中指定的目标文件。如果命令行中没有指定目标,则系统默认target指向描述文件中第一个目标文件。

通常,makefile 中还定义有 clean 目标,可用来清除编译过程中的中间文件,例如:

clean:
rm -f *.o

运行 make clean 时,将执行 rm -f *.o 命令,最终删除所有编译过程中产生的所有中间文件。

隐含规则

在make 工具中包含有一些内置的或隐含的规则,这些规则定义了如何从不同的依赖文件建立特定类型的目标。Unix系统通常支持一种基于文件扩展名即文件名后缀的隐含规则。这种后缀规则定义了如何将一个具有特定文件名后缀的文件(例如.c文件),转换成为具有另一种文件名后缀的文件(例如.o文件):

.c:.o
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
系统中默认的常用文件扩展名及其含义为:
.o  目标文件
.c  C源文件
.f  FORTRAN源文件
.s  汇编源文件
.y  Yacc-C源语法
.l  Lex源语法

在早期的Unix系统系统中还支持Yacc-C源语法和Lex源语法。在编译过程中,系统会首先在makefile文件中寻找与目标文件相关的.C文件,如果还有与之相依赖的.y和.l文件,则首先将其转换为.c文件后再编译生成相应的.o文件;如果没有与目标相关的.c文件而只有相关的.y文件,则系统将直接编译.y文件。

而GNU make 除了支持后缀规则外还支持另一种类型的隐含规则--模式规则。这种规则更加通用,因为可以利用模式规则定义更加复杂的依赖性规则。模式规则看起来非常类似于正则规则,但在目标名称的前面多了一个 % 号,同时可用来定义目标和依赖文件之间的关系,例如下面的模式规则定义了如何将任意一个 file.c 文件转换为 file.o 文件:

%.c:%.o
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
#EXAMPLE#

下面将给出一个较为全面的示例来对makefile文件和make命令的执行进行进一步的说明,其中make命令不仅涉及到了C源文件还包括了Yacc语法。本例选自"Unix Programmer's Manual 7th Edition, Volume 2A" Page 283-284

15一/1021

Google,你太令我失望了!

       这几天关于Google中国与中国政府的摊牌问题被吵得沸沸扬扬。无论国内还是国际上的各种媒体,都在紧密跟进,各种立场都有。关于那些评论在这里我不想多说,只想说说我自己的看法。

       先提个summary,如果你觉得值得看,请以平常心态读,回复的时候不要带脏话就好;如果你觉得这篇文章可能会浪费您的时间,请你离开!我先问一个非常实际的话题,如果Google在中国市场的占有率达到百度的份额,或者每年盈利在20亿以上的话,它会做这样一个决定,离开中国吗?我想答案是不会。相反,它会迎合中国政府关于互联网内容的审查。那么Google这样扬言到底是为什么呢?

(1)Google在中国做得太差了
       在Kaifu Lee时期,Google中国因为有一个英明的,有判断力的领导,明白中国的形势,并能说服总部按照中国政府的意思来。可是开复走后,谁能担起这个重任?没有人!Google用三年多的时间,做到30%的份额,这个成绩还是不错了。因为百度是2000年成立的,才做成这个样子。可是,Google总部的领导人不满足了,不满意了。他们觉得应该做得更好,可是为什么没有做得更好呢?他们每天思考这个问题,而是坚持他们以前走的路子。显然,这是不可行的。现在,Google在中国的营业额只占全球的1%,太差了!10几亿的人口,其市场份额只有1%,是丢脸还是怎么了?所以,Google想退出中国市场。但他不能灰头灰脸的退出吧?再怎么说都是全球最大的搜索服务提供商啊。得了,出这样一招。把自己扮成自由的化身,人权的斗士和保护地球人言论自由的卫士。我只想说,去你妈的!你了解中国国情吗?20年前,你们美国在制定关于网站是否能放Porngraphic内容的法令的时候,绝大部分专家不也认为不应该放吗?到了中国你就成了自由的化身?TMD!

(2)中国的网民,觉醒吧!
       其实我自己也是个Google迷,Google几乎全部的网络服务我都使用过或者正在使用,百度我只用百度mp3搜索。其实对百度没什么好感,因为我自己也从事IT行业,深知在百度要搜一篇有用的文章出来要费好大的劲。
       这都没什么,可气的是有部分中国网民,还以为自己走在时代的前列,给Google献什么花,你以为Google会给你发工资?你以为Google会给你提供安定的社会环境供你工作,学习?觉醒吧,中国网民。还有一部分人,成天在博客上胡乱评论,说这个网络公司没有创意,说那个网络公司抄袭国外的网站。但是你得知道至少人家还在做着,你呢?你成天胡言乱语,可是你做的成绩呢?你的创意呢?你对中国互联网的贡献呢?在哪儿?就像王开源一样,打着开源的旗号到处鼓吹他那套理论。实际上,他写过几行开源的代码?参与过几个项目?恶心!

       最后,请大家细细回味,慢慢平常,不要太激动的评论。我自己喜欢copyleft胜过喜欢copyright,我也经常访问sourceforge和codeproject,工作中天天用到Linux,深刻的体会到开源的意义。我每天用Google无数遍,公司的人也绝大多数使用Google。因为是通过同一台代理服务器访问外网,单位时间内请求次数过多,造成Google还以为是网络攻击,有时候还Reset我们的访问。但是这次,Google太令我失望了!

       推荐大家读一读这篇文章,你就知道国外的人其实有很多还是能看清事实的。http://www.techcrunch.com/2010/01/12/google%E2%80%99s-china-stance-more-about-business-than-thwarting-evil/

标签: 21 评论
9一/100

【用Vim打造IDE】之cscope使用

这是【用Vim打造IDE】系列的第四篇,介绍在程序中快速查找,定位的功能。

一、【用Vim打造IDE】之VIM的基本设置
二、【用Vim打造IDE】之切换工作目录
三、【用Vim打造IDE】之Ctags插件
四、【用Vim打造IDE】之cscope使用

个人觉得cscope插件是所有vim插件中最强大的一个,使用它给我带来的方便,快捷以及灵活性,使我的日常软件开发效率和读代码的效率提高了许多。在给它投票时,我投了Life Change,是的,它改变了我的生活。

Cscope最先由MIT的研究人员开发,也算是系出名门。它能够完成什么样的功能呢?我先简单的列举几条:
1、在函数调用点快速跳转到函数定义处,反之亦然。如果有多个调用点,会以列表形式给出。
2、在函数声明处快速跳转到函数定义处,反之亦然。
3、快速查找全工程里出现光标所在处的单词的地方。
4、查找本函数调用的函数。
5、查找本函数被调用的地方。
这些只是cscope功能的一小部分,如果细心挖掘,你会发现它给你平时开发带来的便利简直是太大了。总是,我是爱上它了。

26十二/0917

唠叨唠叨

      看了上一篇日志的发表时间,才终于意识到离上一次发表文章的时间已经过了一个半月了。

      在这期间,地球已经产生了45x48000兆的信息。美国总统访华,说他带来了“对中华民族强烈的钦佩和美国人民的友好情谊”,个人觉得这句话比当年尼克松访华时说的还要经典。哥本哈根大会结束,从我每天在《时代周刊》网站上看到的新闻来看,几乎全世界人民都认为操蛋的不是中国而是美国。因为美国自己都在喊:“上头疯了”。此外,又有明不经传的中国汽车企业收购世界名牌的消息了。这让国人振奋,但我想得更多的是本土汽车企业和那些被收购品牌的前途。还有上海女研究生自杀,评论说是因为她没有好的“关系”,没有世人的“圆滑”,甚至放弃了牺牲“色相”。这在道德沦丧的中国,到底是行不通的。因为:知识不再改变命运!关系改变命运,或者说关系就是命运。

      话说回来,所有发生的这一切,的的确确与我无关,我有自己忙碌的时候。在过去的一个月,我紧张的备战了日语三级能力考试,筹办了公司的拔河比赛。还完成了简历,个人陈述,推荐信等等需要在申请学校时完成的材料。接下来,我还要负责公司新年会的两个节目。紧张的生活让我不敢一时松懈,甚至回到家听英语时,我都能倒头就睡着。那些悠闲的日子似乎已经离我远去了,剩下的都是些麻烦事。我知道这里不是我的久留之地,但是还是得认真努力的对待。

      圣诞没有一点儿圣诞的味道,因为我自己从来不过,周围同事也没人过。我想还是日本人务实,过的都是些自己民族的传统节日,所以日本公司也这么务实。平安夜那天晚上,公司周围和家周围都有人放鞭炮。我想,到底还是中国文化博大精深,具有强大的包容力。因为任何文化进来都能被吸收得干干净净,连过圣诞都过得这么有中国味道。

      好了,睡觉!我想展望未来,但还不如多睡会,醒来后自己创造未来。

15十一/0920

【转】唐僧的家书

亲爱的悟空,我这封信写得很慢,因为知道你看字不快。我们已经搬家了,不过地址没改,因为搬家的时候把门牌带来了。这个礼拜下了两次雨,第一次下了3天,第二次下了4天。昨天我们去买比萨,店员问我要切成8块还是12块,我说8块就成了,12块吃不完。我给你寄去的外套,怕邮寄时超重,把扣子剪下来放口袋里了。嫦娥生了,因为不知道是男是女,所以不知道你是该当舅舅还是阿姨。最后告诉你,本来想给你寄钱,可是信封已经封上了。春节快到了,别忘了给孩子们讲讲很久很久以前的事:那时候天是蓝的,水也是绿的,庄稼是长在地里的,猪肉是可以放心吃的,耗子还是怕猫的,法庭是讲理的,结婚是先谈恋爱的,理发店是只管理发的,药是可以治病的,医生是救死扶伤的,拍电影是不需要陪导演睡觉的,照相是要穿衣服的,欠钱是要还的,孩子的爸爸是明确的,学校是不图挣钱的,白痴是不能当教授的,卖狗肉是不能挂羊头的,结婚了是不能泡MM的,买东西是要付钱的,看完不转发出去是要被打屁股的。

标签: 20 评论
6十一/092

【用Vim打造IDE】之Ctags插件

这是【用Vim打造IDE】系列的第三篇,介绍在VIM中跳来跳去的功能,呵呵……

一、【用Vim打造IDE】之VIM的基本设置
二、【用Vim打造IDE】之切换工作目录
三、【用Vim打造IDE】之Ctags插件
四、【用Vim打造IDE】之cscope使用

用过SourceInsight的童鞋都知道,SourceInsight之所以强大,是因为它在代码中强大的跳转能力,无论是函数,变量,还是宏定义等等等等,它都能在你需要的时候迅速跳转到指定位置。查看函数的调用情况,声明和定义等等。在查看代码方面很是了得。同样的。VS也有相应的功能。
那么,我们要将VIM打造成一个强大的IDE,这个功能决不能少。今天就给大家推出Ctags插件,它使得VIM同样具有我们上面提到的功能。Ctags最初是以VIM的一个插件发布的,但现在已经成为VIM的标准插件,安装VIM的时候已经默认安装,所以不需要手动安装。
Ctags支持多达25中编程语言,能完成一种语言中几乎所有的自定义内容的跳转。大约有:

类名
宏定义
枚举
函数定义
函数原型和声明
类,接口,结构体,联合体
typedef内容
变量(包括外部变量)

是不是很强大?好了,下面介绍使用方法。
(1)在http://ctags.sourceforge.net/下载对应操作系统的版本,在Windows下建议放到C:/Windows/system32/下。CD到源代码存放目录,执行命令ctags -R,会在源代码目录下生成一个tags文件。-R表示递归分析子目录的文件。
(2)现在编辑.vimrc文件,将tags文件的路径加进去。在.vimrc文件中加入:

1
2
3
"设置tags
set tags=E:/source/tags "Windows下
set tags=~/source/ "Linux下

(3)用vim打开一个源文件文件,将光标定位到任意的函数或者变量上,按下“Ctrl+]”组合键,即可跳到函数或变量声明的地方,宏定义等等都是一样。再按“Ctrl+T”跳回到原处。是不是很方便?即使用户使用了N次“Ctrl+]”查找了N个变量,按N次“Ctrl+t”也能回到最初打开的文件,它会按原路返回 。 ^_^

5十一/092

每一个软件开发人员绝对必须掌握的关于 Unicode 和字符集的知识

关键字:     Unicode, Character Set, 字符集, UTF-8, ANSI, ASCII, UTF-7

原文标题:    The Absolute Minimum Every Software Developer Absolutely, Positively Must Know

About Unicode and Character Sets(No Excuses!)

原文链接:    http://www.joelonsoftware.com/printerFriendly/articles/Unicode.html

作者:       Joel Spolsky

来源:http://blog.csdn.net/inelm/ 作者:Joel Spolsky

ASCII 码

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

7 位(00~7F)。 32 ~ 127 表示字符。32 是空格, 32 以下是控制字符(不可见)。

第8位没有被使用。全世界很多人同时对这个位的含义发展了不同的用处。比如 IBM PC 中的 OEM 字符集。

最后就 128 位以下的用处达成共识,制定了 ASCII 标准。

而 128 位以上的可能有不同的解释,这些不同的解释就叫做 code pages.

甚至有用于在同一台电脑上解释多种语言的 code page.

4十一/090

【用Vim打造IDE】之切换工作目录

这篇文章是【用Vim打造IDE】系列的第二篇,用来讲解自定义工作目录以及自动切换。你可以再下面的列表里选择之前的文章。

一、【用Vim打造IDE】之VIM的基本设置
二、【用Vim打造IDE】之切换工作目录
三、【用Vim打造IDE】之Ctags插件
四、【用Vim打造IDE】之cscope使用

上一期我们将了Vim安装后的一些常用设置。我想,这些常用设置已经满足了你的基本需要。为了更好的适应大型项目,我们首先的设置好大型项目的工作目录。刚安装好Vim后,默认的工作目录是~/(Linux下)或C:\Documents and Settings\Username\(Windows)。这样可满足不了我们的需要。现在就做一点小手脚,修改一下吧。

假设我们的源代码放在E:\Source\里,并且这个大型的项目还有很多Project,每个Project都放在以ProjectName命名的文件夹里。例如我们有Project1,Project2两个项目,放在以Project1和Project2命名的文件夹里。将下面这段代码放在.vimrc文件里,我们就可以用Chw命名来切换工作目录啦。(注意:自定义命令都必须以大写字母开头。)

1
2
3
4
5
6
7
8
9
10
set autochdir       "自动切换工作目录,以当前打开的文件所在目录为准
"定义工作目录
let g:Source="E:/source/"
let g:project1=g:source . "bin/project1/"
let g:project2=g:source . "bin/project2/"
function Cw(dir)
    execute ":cd " . a:dir
endfunction
call Cw(g:JCXA)
com -nargs=1 Chw  call Cw()

Vim一启动,就会自动将当前的工作目录切换到E:/Source/。在vim的命令模式下,可以用

:pwd

查看当前的工作目录。输入

:Chw Project1

就会转到Project1的目录下了。如果你还有更多的的Project,完全可以用这种办法来设置。

   下一页