这些天,一直在研究各种不同的program analysis tool, 看各种不同的paper。
这样的survey, 估计快要两个月了。
现在终于要开始了。
弄个小平台,把一些基本分析工具都加上。
然后在这小平台上舞动,希望能有不错的表演。
现在,需要搞定的有好几项:
1. 用什么来做parsing
2. 要怎么把existing tool都移植到小平台上。
3. static analysis 有没有确切的帮助。
小记一下这个起点。
Friday, October 30, 2015
看这世界
我发现这人的世界,和动物的世界没有什么太大的不同。
每一个寸土,不存在永远的和平。
你踏过的土地,有哪个没有战争过,有哪个没有和平过。
就是这样的反反复复。
强势精明的人,策略上,应该是优于弱势的。
一块资源,一个强势精明的人,能用各种手段把它得到。
弱势的人,就无法享有这些优势。
但是,所争夺的东西,会得到,终究会失去,最多等到你老死那一天。
这样的争夺,有时牺牲掉的是千千万万条的生命。
人说做大事,必须要有大气魄。
但是,为了某个目标,牺牲掉的生命,这样值得吗。
用因果论来说,每一个所作的行为,都会有一个反作用力。
通俗一点来说,“善有善报,恶有恶报,不是不报,而是时间未到”
杀害生命的负面反作用力,是很大的。
我感觉这个很不值。
但是这个世界毕竟也是一场梦幻。
好好坏坏,其实也是一场梦幻,没有本质上的不同。
但是要了解和超越这是一场梦幻,毕竟不是一件简单的事。
如果这个负面反作用力,让你的梦变成一场恶梦,梦中的心也浑浊不堪,估计更加不可能去理解和超越了。
每一个寸土,不存在永远的和平。
你踏过的土地,有哪个没有战争过,有哪个没有和平过。
就是这样的反反复复。
强势精明的人,策略上,应该是优于弱势的。
一块资源,一个强势精明的人,能用各种手段把它得到。
弱势的人,就无法享有这些优势。
但是,所争夺的东西,会得到,终究会失去,最多等到你老死那一天。
这样的争夺,有时牺牲掉的是千千万万条的生命。
人说做大事,必须要有大气魄。
但是,为了某个目标,牺牲掉的生命,这样值得吗。
用因果论来说,每一个所作的行为,都会有一个反作用力。
通俗一点来说,“善有善报,恶有恶报,不是不报,而是时间未到”
杀害生命的负面反作用力,是很大的。
我感觉这个很不值。
但是这个世界毕竟也是一场梦幻。
好好坏坏,其实也是一场梦幻,没有本质上的不同。
但是要了解和超越这是一场梦幻,毕竟不是一件简单的事。
如果这个负面反作用力,让你的梦变成一场恶梦,梦中的心也浑浊不堪,估计更加不可能去理解和超越了。
Tuesday, September 22, 2015
被三整除
如果一个号码,个别号码加起来能被三整除,它能被三整除
e.g.
111|3, 1+1+1|3
证明方法
100a+10b+c=3k
99a+9b+(a+b+c)=3k
(99a+9b)|3
so (a+b+c)|3
这个证法巧妙,
关键在于要如何把前提100a+10b+c=3k和结论a+b+c=3k‘关联起来。
但是更巧妙的是如何发现a+b+c=3k‘这个结论的。
这个关键在于观察能被三整除的数,得出结论
111,120.
这个观察能被自动化吗?
data mining就是搞这个的。
我们要看的是,当这些数字被apply一个function f
f(111)=f(120)..他们的数是有关系r的,这里的关系是相等。
我们要怎样找到function f和关系r呢?
简单方法是用daikon的方法,
弄template来一个个试。
还有没有更好的方法呢?
e.g.
111|3, 1+1+1|3
证明方法
100a+10b+c=3k
99a+9b+(a+b+c)=3k
(99a+9b)|3
so (a+b+c)|3
这个证法巧妙,
关键在于要如何把前提100a+10b+c=3k和结论a+b+c=3k‘关联起来。
但是更巧妙的是如何发现a+b+c=3k‘这个结论的。
这个关键在于观察能被三整除的数,得出结论
111,120.
这个观察能被自动化吗?
data mining就是搞这个的。
我们要看的是,当这些数字被apply一个function f
f(111)=f(120)..他们的数是有关系r的,这里的关系是相等。
我们要怎样找到function f和关系r呢?
简单方法是用daikon的方法,
弄template来一个个试。
还有没有更好的方法呢?
Sunday, September 13, 2015
onenote v3
我有一个onenote, 用了好多年了。
我回想一下用了多少年,发现是一个朋友介绍用的,于是一下就算出4-5年。
我刚刚把它重新整理一下。
v1是凌乱不堪的。
v2稍有架构,比如有个scribbleDB, 就是每一次听talk的时候开一个新的page,来记录。notebook基本分成technical, research, live等等。
在v2之后,本来是想把研究的note都整理在evernote,因为store在云端,很方便。发现他的桌面版本用的不太爽,没有onenote 好,没有bibliography manager,而且他的note structure, 最多只support one level。于是想把研究的note整理在latex里。平常manipulate latex还可以,但是你在飞快的研究,搜索资料的时候,用latex来记录,实在是太慢了。然后我研究了onenote。onenote 2013,有了极大进步,能云端手机各个电脑同步,能support tag(可以用它来替代bibliography manager)。于是我重新选择了onenote.
但是现在的研究架构,想法,和以前又有不一样。比如说,我不再做WS,比如说,比如说,我希望jot down的idea更实际,不要那么abstract. 而且,现在我在进行新研究探索的同时,没有一个effective的structure, 来support我的资料搜索记录。
所以有了重新整理的想法。
现在是v3, bold是问题,下面是解决方案。
1. 我现在回去看一些paper摘要,发现也不太记得自己记了什么。
重新看下这些paper,把paper里,所有的精髓,都好好的简洁记录下来。目标是五年后也看得懂,看得快,也根据自己目前的研究情况,重新整理了一下structure。
打算分成几个块
1. 做的是什么,用来干什么的
2. 使用什么intuition
3. 具体方法简介
4. 怎么evaluate的
最主要要把自己思考比较久才理解的部分写出来。
方法介绍也可以用例子。
目标是,下次见到这篇文章,能够知道他做了什么,能够领略和重用它的方法思路。能够重用它的evaluation方法。
打算分成几个块
1. 做的是什么,用来干什么的
2. 使用什么intuition
3. 具体方法简介
4. 怎么evaluate的
最主要要把自己思考比较久才理解的部分写出来。
方法介绍也可以用例子。
目标是,下次见到这篇文章,能够知道他做了什么,能够领略和重用它的方法思路。能够重用它的evaluation方法。
2. 很多可重用的知识,都被记下,忽略了。
现在我划分了知识区域,像我设置了Algorithm的 section group, 下面会有各种sections关系到algorithm的,想max flow min cut。然后把卡中关系到max flow min cut的知识,都整理在max flow min cut下面。于是乎,这样也不至于糟蹋了隐藏起来的知识。
然后呢在每个section里头,比如说Lattice,page是对Lattice的简介和用途,五年后我也不会记得什么是Lattice吧,虽然现在不太可能。
然后呢对于Lattice的介绍,一个abstract (用H1 font, 重点bold一下),一个concrete (普通font,重点highlight一下),一个example。Abstract部分一定要是自己整理出来的,除了第一个段落是overviewe,第二个段落是针对自己思考最久的部分做介绍,剩下自己下一次看的时间。
3. 没有support structure 提供可重用记录。
我对于现在的研究领域,开了一个新的notebook。里面是我现在研究领域相关的sections(比如program analysis)。这样我在做和某个sections相关探索是,直接记录在里面就行。我现在的记录方式是,贴个问,用一句精要的话做简介。因为经验是,我不会特意去看那些复杂的文字。
Friday, September 4, 2015
为了别人
我发现,如果所有的想法,通通都站在让别人利益最大化的角度想,一切都会豁然开朗,人生变得异常亮丽。
今天有用游了25圈,最多一次。
这是游泳心得。
比如服务免费,很好,让用服务的人能享福利,解痛苦。
收费,也很好。赚的钱可以帮助某服务帮助不到的人们,因为钱是通用的。
这是一个需要optimize的世界,optimize的function永远是别人。
后来发现khan academy这个人,为了让更多人看他的教学,而错失了十亿元的投资。
了得了得
http://wechat.fingerdaily.com/thread-297860-1-1.html
今天有用游了25圈,最多一次。
这是游泳心得。
比如服务免费,很好,让用服务的人能享福利,解痛苦。
收费,也很好。赚的钱可以帮助某服务帮助不到的人们,因为钱是通用的。
这是一个需要optimize的世界,optimize的function永远是别人。
后来发现khan academy这个人,为了让更多人看他的教学,而错失了十亿元的投资。
了得了得
http://wechat.fingerdaily.com/thread-297860-1-1.html
Tuesday, September 1, 2015
Sunday, August 30, 2015
和大牛学习 - Sumit Gulwani
1. 搞的是问题的fanciness - 解决是实用问题。
不搞方法fanciness,就用brute force解决。
但是解决问题的方法是很实际,很实用的。
比如说:
别人用counterexample来描述问题,实验发现这个方法不是特别有用,因为不能解释现在的program和答案接近。于是他提出了program sketching的方法,建造一个error model,来找出一个和现在error program最相近的correct program
在content entry 方面,一般人的语言都是模糊描述 比如给予 sqrt((1+cosA)/(1-cosA))一般人不会去说parenthesis,于是他提出要怎么从模糊语言中减少error,找到user想要的model.
2. 看领域找方法。
他的思维是发散的,但是在发散的同时,也会想清楚领域的需求和局限,并在不同领域搬运方法。
3. 一小步开始。
他不是一开始就弄一个特别大的idea,idea都是很小块的,但是很实用。
4. 把方法变成plugin在常用的tool,并弄成video
非常好的方法 - marketing, impact, 都会产生效果。
他的方法在video上也有和大的wah的效果,wah很重要。
5. Cater for details
别人问问题的时候,他基本能说出他是用什么方法来解决一些细节问题。
不搞方法fanciness,就用brute force解决。
但是解决问题的方法是很实际,很实用的。
比如说:
别人用counterexample来描述问题,实验发现这个方法不是特别有用,因为不能解释现在的program和答案接近。于是他提出了program sketching的方法,建造一个error model,来找出一个和现在error program最相近的correct program
在content entry 方面,一般人的语言都是模糊描述 比如给予 sqrt((1+cosA)/(1-cosA))一般人不会去说parenthesis,于是他提出要怎么从模糊语言中减少error,找到user想要的model.
2. 看领域找方法。
他的思维是发散的,但是在发散的同时,也会想清楚领域的需求和局限,并在不同领域搬运方法。
3. 一小步开始。
他不是一开始就弄一个特别大的idea,idea都是很小块的,但是很实用。
4. 把方法变成plugin在常用的tool,并弄成video
非常好的方法 - marketing, impact, 都会产生效果。
他的方法在video上也有和大的wah的效果,wah很重要。
5. Cater for details
别人问问题的时候,他基本能说出他是用什么方法来解决一些细节问题。
Subscribe to:
Posts (Atom)