十二月 29th, 2010
《先知》,纪伯伦。这本书买了一年,看了一遍,更多的时候是听其附带的朗诵,美和哲理,很让人内心平静。左上角的“憩于理性,行于热情”也是出于这。先知讲述的真理包括爱、婚姻、孩子、施与、饮食、工作、欢乐和悲哀、房子、衣服、买卖、罪与罚、法律、自由、理性和热情、痛苦、自知、教育、友谊、谈话、时间、善恶、祈祷、快乐、美、宗教、死。 为什么说是真理,当你相信的时候就是真理,不相信的时候就是建议。正如里面所说:“不能说我找到了真理,而应该说我找到了一条真理。” 这一个月里经常去参加教会的活动,得到的多是感动和宁静,虔诚的爱可以让生活变得不一样。如一位大哥所说,在这里的是新生,以前认为很重要的东西变得不重要,以前认为很不重要的东西重要起,迷途的羔羊们都弄反了。
论爱
假如你在你的疑惧中,只寻求爱的和平与逸乐,
那不如掩盖你的裸露,而躲过爱的筛打,
而走入那没有季候的世界,在那里你将欢笑,却不是尽情的笑悦;你将哭泣,却没有流干了眼泪。
爱除自身外无施与,除自身外无接受。
爱不占有,也不被占有。
因为爱在爱中满足了。
论工作
你们也听见人说,生命是黑暗的。在你疲劳之中,你附和了那疲劳的人所说的话。
我说生命的确是黑暗的,除非是有了激励;
一切的激励都是盲目的,除非是有了知识;
一切的知识都是徒然的,除非是有了工作;
一切的工作都是空虚的,除非是有了爱。
当你仁爱地工作的时候,你便与自己、与人类、与上帝连系为一。
Posted in Books | No Comments »
十二月 22nd, 2010
以前写的一些程序运行一段时间后占用的内存越来越多,估计是内存泄露了。服务端的程序要长时间的运行,内存泄露是个很严重的问题。于是再检查程序,很崩溃的是还有另外一个模块不是自己写的,看起来很麻烦。看了半小时后发现一些问题,但是还是不能保证是否完全解决了。同事让我用以前他们写的一些函数,对应的为MALLOC和FREE。仔细看了一下觉得很不错,其实就是把malloc和free函数封装了一下,用来记录申请空间的文件和代码位置,使用方法就是用MALLOC和FREE替代原来的函数。主要的数据结构是:
typedef struct
{
long pcode; //指针
char filename[128]; //申请空间的源文件名称
int line; //申请空间的代码所在的行
int ct; //内存状态: 0-未闭合,1-闭合,2-log/脚手架
}mem_info;
mem_info mem_in[MEM_SIZE]; //MEM_SIZE最大指针数目
int mem_in_id; //数组中已经占有的mem_info数目
int mem_check_statue; //是否进行内存泄露检查
然后有两个函数,一个是初始化函数mem_check_init(),另一个为mem_check_write(),这样就能检查者两个函数之间的代码是否有内存泄露,mem_check_write()可以打印成一个表,所有申请了空间的代码的文件名称和代码所在的行数,以及运行到mem_check_write()这里的时候所有申请空间的状态,1表示已经释放,0表示申请未释放,2表示的是脚手架的位置(用来方便检查哪一小段代码是否有内存泄露)。
#define MALLOC(size) __ck_malloc(size,__FILE__,__LINE__) //__FILE__ 文件 __LINE__ 代码所在行
void *__ck_malloc(int size,char *file,int line)
{
void *p=malloc(size);
if (mem_check_statue) return p;
if (mem_in_id>=MEM_SIZE) return p;
mem_in[mem_in_id].pcode=(long)p;
strcpy(mem_in[mem_in_id].filename,file);
mem_in[mem_in_id].line=line;
mem_in[mem_in_id].ct=0; // 状态: 0-未闭合
mem_in_id++;
return p;
}
那么FREE(p),进行的操作就是现在数组中找到是否有这个p,如果有就改变状态,变为1表示闭合了,也就是释放掉了。CALLOC和MALLOC类似,是调用calloc,函数malloc()和函数calloc()的主要区别是前者不能初始化所分配的内存空间,而后者能。REALLOC有点不一样,调用void* np=realloc(p,size),这里要注意np和原来的p有可能不一样,有可能一样,比较一下进行相应处理。最后mem_check_write()遍历上上面的数组打印出来表,其顺序就是按照代码执行的顺序了,其中脚手架可以比较方便的定位于申请了没有释放的代码行,也就是查找两个2之间的0所对应的行。
这是一个很不错的方法,今天用这个办法找到了好多处不易发现的内存泄露错误。但这也有其缺点,即使完全通过也不能保证就完全没内存泄露了,除非测试时运行代码的覆盖率要保证所有代码都运行到了,这也是正规的、高质量的测试所要做到的程度。我们现在没有时间来做足够好的测试,以后再好好规范一下。
Posted in Programming | Tags: C, C语言 | 2 Comments »
十二月 1st, 2010
昨晚上正准备睡觉时手贱点随便点击了个链接,然后就在这个《老罗全国巡回演讲完结篇:海淀剧场》里一直跟着欢乐到2点钟。大学时有一段经常听老罗语录,胖子嬉笑怒骂、语言犀利、愤世嫉俗、玩世不恭、理性的愤青,听来很过瘾。那时很流行的一句是:“彪悍的人生不需要解释”。时不时我们寝室几个人吃完饭就那么瞎坐在那里,放上几段经典的来笑笑。原来我电脑上是有老罗全集的,后面硬盘毁掉了。很久没这么长时间听这罗氏语调了,酣畅淋漓。
老罗在腾讯微博上很活跃,一如既往的内心强大,就中医是否伪科学和无数人争论到底,耐心相当之好。原来听过老罗语录的人应该会知道此人为什么会如此憎恨中医。这牛还出书了,《我的奋斗》,看过几章,还是挺不错的。原来听说老罗在办个英语培训学校——老罗和他的朋友们教育科技有限公司,没想到现在已成气候,每天醒来都能闻到钱的味道。这个老罗全国巡讲应该是最好的广告了。以前的一系列我都没看到,不过看了最后这个终点站的应该不用看前面的了。演讲的题目是《一个理想主义者的创业故事》,估计是演说了很多场了,这牛已经熟练到如火纯青的地步。原来还以为ppt是别人帮忙放的,后来才发现应该是自己手里握着个遥控器,期间基本很少看自己的ppt,只有在自恋的时候转身对着花痴一下。笑过后也是有所收获,老罗分享了其创业以来的一些经历和想法。稍微总结一下。
1 企业的核心产品或服务。老罗英语培训,师资是关键,这个没办法,有的事只能钱来解决,用最好的薪资待遇请最好的老师。
2 营销策略和推广,这是最长也是最有趣的部分,都是一些有趣的案例。老罗是个偏执狂,只有偏执狂才能做出那么漂亮的宣传画和广告。小小窃喜一下,那个音乐节上的广告我也想到了那么个切入点,不过看的时候还是震撼了一把,完美,太有才了。还有一些平面广告在这里。
3 待遇、企业文化、愿景,这些东西是一个公司是否能留住人的关键,实实在在做产品或者服务的公司,即使在中国这样的创业环境下,还是有生存机会。我没上过老罗的辅导班,也没那钱力,觉得关于英语学习的任何辅导班都没什么用,学英语这事得靠自己。可这老罗英语培训机构做的确实很有个性。
4 即使是老罗这么内心强大的人也有挺不住的时候,这时候他的自恋和幻觉产生作用了。看来老罗最后居然有点哽塞,果真是讲到深处了。最后在商业机构里做一个理想主义者非常难,但赚钱不等于染铜臭。而又有“偏执狂才能生存”这么一个道理,要做一个牛逼的企业,还是需要理想主义的偏执狂。

Posted in 未分类 | Tags: 扯淡, 老罗 | 4 Comments »
十一月 20th, 2010
POJ 2714
最近又在POJ上做题,碰上2714,题意是:
输入N,和N个点(x,y),从原点开始一共可以走N步,每一步可以随机选择移动(x,y),或者(-x,-y)。N的范围为1-100。
输出最远能走到离开原点多远的地方,输出其距离。
分析一下,用迭代肯定可以,不过2^N的复杂度肯定太高了。每步有两种选择,其本质是求一个长度为N的0、1序列使得最后的值最大,为一个优化问 题。这里贪心不能求到最优解,稍微证明一下就能得出。如果不贪心,或者把贪心的范围扩大一点,求出每一步完后的凸包呢,然后再在这步的基础上继续扩展下一 些节点,再求凸包,继续如此,最后求得凸包中距离最远的。求凸包的复杂度位O(nlgn),即最后的复杂度为O(N^2lgN),是可以接受的。
随机搜索
以前看过《集体智慧编程》这本书,这里有一章是说的优化。稍微回顾一下其中的几个算法。对于优化问题,首先得找到一个评价函数,对于其某个方案评价函数能给出某个值评估方案的优劣。至于返回值越大还是越好没有规定,对于特定的问题选择特定的评价函数。 随机搜索不是一种好的优化算法,但是却是后面的算法的根源。其基本思想是,我们随机长生一些解,看是否好,如果比当前更好,替换当前最优解,直到收敛了,或者猜测了足够的次数了。
do{
solution=rand_solution;
value=eval(solution);
if(value>best)
best=value;
times++;
//测试是否收敛
}while(times<max_iter&&(!limit_flag));
这种盲目的猜测虽然有机会在某一次猜中最优解,但是效率肯定不怎么好。随机算法还是有一些问题可以适用,比如素数判定,如果能保证错误率很低很低也是可行的算法。
Read the rest of this entry »
Posted in Programming | Tags: 优化, 算法, 随机算法 | 3 Comments »
十一月 15th, 2010
Muse简介
Muse 是由 EmacsWiki 衍生的,为emacs下的一个扩展模式,可以方便快捷的为文档生成各种格式,包括html,pdf,latex等等。Muse的编辑规则很简单,而且支持“所见即所得”的编辑方式可以让文档编辑更轻松。我使用这个工具已经快一年了,强烈推荐。这个html文件就是从Muse调用htmlize生成的。
Muse的配置
从这里下载最新版本的Muse,比较简单的安装方法是解压后直接在目录下运行make,然后把所有的文件都拷贝到emacs的一个加载目录下面(比如~/.emacs.d/muse/)。设置.emacs加入以下几行。
;; 加载 muse
(require 'muse-mode)
(require 'muse-html)
然后就可以利用Muse-mode来方便地创建文档。这里有个QuickStarted,看一遍就基本掌握了编辑规则。编辑完成以后按键C-u C-c C-t即可发布该文档。
Muse中源代码高亮显示
在Muse-mode中编辑时是所见即所得样式的显示,但是有一个问题是代码不能高亮显示,要贴代码就有点不方便,解决的方法是要下载htmlize.el,而且需要1.34以后的版本才支持这个功能,在这里下载。使用方法也有说明。
Muse 来写主页和博客
很多搞学术的同学喜欢建一个看起来很严谨的静态主页,这样的主页用Muse来维护非常方便。对于wordpress的博客或者主页,一款离线撰写工具是必须的,在windows下可以用WindowsLiveWriter,Linux下也有相应工具。不过我大部分还是在自己电脑上用Muse来写完发布成html格式,然后再发布到主页上。首先我们需要建立一个主页的工程。比如我的:
;;==新建一个wiki工程
(setq muse-project-alist
'(("MainPage"
("~/document/blog/Home" :default "index")
(:base "html" :path "~/document/blog/Home_Page"))
("Computer"
("~/document/blog/Home/Computer/" :default "index")
(:base "html" :path "~/document/blog/Home_Page/Computer"))
("Sport"
("~/document/blog/Home/Sport" :default "index")
(:base "html" :path "~/document/blog/Home_Page/Sports"))
("Other"
("~/document/blog/Home/Other" :defualt "index")
(:base "html" :path "~/document/blog/Home_Page/Other"))))
然后到相应目录下撰写muse文件,快捷键C-c c-p就发布了整个工程,在Home_Page相应的目录下生成了html的文件。看起来有点复杂,其实还是很方便的,代码高亮这个程序员都喜欢的功能肯定就不用操心了,同时在本机上留有个备份。这种wiki风格的网页还是很利于浏览。不过有一个弊端,图片插入虽然在撰写过程中能直接预览的,但是上传到wordpress上路径肯定会变,所以还是要再稍微编辑一下。

Muse中编辑文档
Posted in Backup | Tags: Emacs, muse | 1 Comment »
十一月 14th, 2010
实验室的机子要被占,要搬出来,所以得把资料整理一下。发现一个原来研一英语课上做representation的ppt,题目是介绍一位自己喜欢的歌手。那次第一次上台做英报告,呵呵。我喜欢缓慢而伤感,有些沉重的歌。在一位同学日记上看到介绍Damien Rice的,然后喜欢上了他的歌。研一那一年骑车时候基本都是这些歌,高中时最郁闷的时候经常听的是王菲和齐秦。一段时间狂听某些歌好像已经成了习惯,然后偶尔再听到的时候当时的情景自然就浮现了,音乐也是一种好的记忆载体。
Damien Rice

Damien Rice is an Irish Rock singer.Two studio albums: O in 2003, and 9 in 2006.He was born and raised in Ireland,a country which is rich in country music, poets, singers. When He was young, music and drawing attract him. Rice was a member of the rock band Juniper.Having released the singles “The World Is Dead” and “Weatherman” in Ireland during 1998.
Rice left the band to pursue a solo career. His Juniper band mates later became Bell X1.
Rice’s first solo album is O, which was released in 2003 and a true contender for one of the best albums of 2003, won the Shotlist Music Prize.Rice’s style is simplity. The cover of this album is a beige hand painted portraits of the two small chiledren, which was drawed by himsefl. This is am simple folk album. This album contains a large number of hollow guitar chords , easy and simple percussion, drowning, backwards vocals, and low_key accompaniment .
Rice is master of what critic called “the unknown tongue” — basically the musical equivalent of the “punctum” in photos, Rice’s emtional singing brings me a sad ,clean and sophisticated intimate space. Three years later, following extensive promotion of O in Ireland and further success worldwide, Rice released his second studio album 9 in 2006.
好听的专辑: 9
1. 9 crimes
2. the animals were gone
3. elephant
4. rootless tree
5. dogs
6. coconut skins
7. me, my yoke and i
8. grey room
9. accidental babies
10. sleep don't weep
9 crimes最好听,适合半夜失眠。MV拍得很吸引人,在这里,我当时课上放的就是这个MV,非常惊艳,课后还有同学问我要这个。另有个评论感觉写得非常不错。
Cold water浮躁繁杂的时候,就来听听这样一首像诗歌般的曲子,这也是电影《偷心》的片尾插曲。木吉他很有感觉,以后有时间学学,呵呵。
还有这首The Blowers Daughter非常不错。
音频片段:需要 Adobe Flash Player(9 或以上版本)播放音频片段。 点击这里下载最新版本。您需要开启浏览器的 JavaScript 支持。
Posted in Backup | Tags: music | 1 Comment »