《先知》- 纪伯伦

十二月 29th, 2010

《先知》,纪伯伦。这本书买了一年,看了一遍,更多的时候是听其附带的朗诵,美和哲理,很让人内心平静。左上角的“憩于理性,行于热情”也是出于这。先知讲述的真理包括爱、婚姻、孩子、施与、饮食、工作、欢乐和悲哀、房子、衣服、买卖、罪与罚、法律、自由、理性和热情、痛苦、自知、教育、友谊、谈话、时间、善恶、祈祷、快乐、美、宗教、死。 为什么说是真理,当你相信的时候就是真理,不相信的时候就是建议。正如里面所说:“不能说我找到了真理,而应该说我找到了一条真理。”  这一个月里经常去参加教会的活动,得到的多是感动和宁静,虔诚的爱可以让生活变得不一样。如一位大哥所说,在这里的是新生,以前认为很重要的东西变得不重要,以前认为很不重要的东西重要起,迷途的羔羊们都弄反了。

论爱

假如你在你的疑惧中,只寻求爱的和平与逸乐,
那不如掩盖你的裸露,而躲过爱的筛打,
而走入那没有季候的世界,在那里你将欢笑,却不是尽情的笑悦;你将哭泣,却没有流干了眼泪。
爱除自身外无施与,除自身外无接受。
爱不占有,也不被占有。
因为爱在爱中满足了。

论工作

你们也听见人说,生命是黑暗的。在你疲劳之中,你附和了那疲劳的人所说的话。
我说生命的确是黑暗的,除非是有了激励;
一切的激励都是盲目的,除非是有了知识;
一切的知识都是徒然的,除非是有了工作;
一切的工作都是空虚的,除非是有了爱。
当你仁爱地工作的时候,你便与自己、与人类、与上帝连系为一。

内存泄露

十二月 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所对应的行。

这是一个很不错的方法,今天用这个办法找到了好多处不易发现的内存泄露错误。但这也有其缺点,即使完全通过也不能保证就完全没内存泄露了,除非测试时运行代码的覆盖率要保证所有代码都运行到了,这也是正规的、高质量的测试所要做到的程度。我们现在没有时间来做足够好的测试,以后再好好规范一下。

罗胖子的扯淡极致

十二月 1st, 2010

昨晚上正准备睡觉时手贱点随便点击了个链接,然后就在这个《老罗全国巡回演讲完结篇:海淀剧场》里一直跟着欢乐到2点钟。大学时有一段经常听老罗语录,胖子嬉笑怒骂、语言犀利、愤世嫉俗、玩世不恭、理性的愤青,听来很过瘾。那时很流行的一句是:“彪悍的人生不需要解释”。时不时我们寝室几个人吃完饭就那么瞎坐在那里,放上几段经典的来笑笑。原来我电脑上是有老罗全集的,后面硬盘毁掉了。很久没这么长时间听这罗氏语调了,酣畅淋漓。

老罗在腾讯微博上很活跃,一如既往的内心强大,就中医是否伪科学和无数人争论到底,耐心相当之好。原来听过老罗语录的人应该会知道此人为什么会如此憎恨中医。这牛还出书了,《我的奋斗》,看过几章,还是挺不错的。原来听说老罗在办个英语培训学校——老罗和他的朋友们教育科技有限公司,没想到现在已成气候,每天醒来都能闻到钱的味道。这个老罗全国巡讲应该是最好的广告了。以前的一系列我都没看到,不过看了最后这个终点站的应该不用看前面的了。演讲的题目是《一个理想主义者的创业故事》,估计是演说了很多场了,这牛已经熟练到如火纯青的地步。原来还以为ppt是别人帮忙放的,后来才发现应该是自己手里握着个遥控器,期间基本很少看自己的ppt,只有在自恋的时候转身对着花痴一下。笑过后也是有所收获,老罗分享了其创业以来的一些经历和想法。稍微总结一下。

1 企业的核心产品或服务。老罗英语培训,师资是关键,这个没办法,有的事只能钱来解决,用最好的薪资待遇请最好的老师。

2 营销策略和推广,这是最长也是最有趣的部分,都是一些有趣的案例。老罗是个偏执狂,只有偏执狂才能做出那么漂亮的宣传画和广告。小小窃喜一下,那个音乐节上的广告我也想到了那么个切入点,不过看的时候还是震撼了一把,完美,太有才了。还有一些平面广告在这里

3 待遇、企业文化、愿景,这些东西是一个公司是否能留住人的关键,实实在在做产品或者服务的公司,即使在中国这样的创业环境下,还是有生存机会。我没上过老罗的辅导班,也没那钱力,觉得关于英语学习的任何辅导班都没什么用,学英语这事得靠自己。可这老罗英语培训机构做的确实很有个性。

4 即使是老罗这么内心强大的人也有挺不住的时候,这时候他的自恋和幻觉产生作用了。看来老罗最后居然有点哽塞,果真是讲到深处了。最后在商业机构里做一个理想主义者非常难,但赚钱不等于染铜臭。而又有“偏执狂才能生存”这么一个道理,要做一个牛逼的企业,还是需要理想主义的偏执狂。

未命名

优化算法

十一月 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 »

Emacs Muse的使用

十一月 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中编辑文档

又是一些歌

十一月 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 支持。


Pages: Prev 1 2 3 4 5 6 7 8 9 Next