![]() |
|
Spaces home Tang Liang's notebookPhotosProfileFriends | ![]() |
|
July 08 这段时间的总结离去年北上MSRA的实习已经有1年多了。从本科的时候就把MSRA作为自己一直努力奋斗的目标。这个目标终于在07年实现了,而我的07年大半年时光都在MSRA度过。回想起来,那段时间除了work外没有什么前忧后顾,还有一大帮新朋友,老朋友,过得是挺自在的,舒服的。然而,正是这半年多的实习经历改变了自己现在的人生目标。我相信我从本科一直到研究生的几年内,工程方面的积累已经足够我去竞争国内最顶尖的企业了。但是,或许我自己从小本身就属于热衷未知领域的探索,新事物的发明创造的人,MSRA的经历在某种程度上激发了这种内心本质追求的渴望,从而去追求新的目标,更高的目标。 从去年年底回到学校,就一直潜心在做学术研究。半年多时间又过去了,收获还是挺大了,NDBC中了一篇,IEEE的某个Conf.中了一篇,还有一篇刚投出去。虽然已经中的两篇虽然都不是顶级的会议,但也是对自己的工作的肯定。实际收获还不光是这些看得到的,诸如自己的阅读论文的能力,查找相关文献,做研究的心态,写作技巧, matlab运用等各方面的提高。想起来,这段时间也过得很辛苦,很多时候都是每天几乎14小时的工作和学习,比起MSRA的工作有过之而无不及。毕竟,自己硕士阶段剩下的时间也不多了,每一天的时间都是很宝贵的。另外,能在这么短时间能取得这些收获,也少不了导师,师兄们的指导和帮助。现在真的很庆幸自己当年能保送到现在的导师和实验室。没有实验室这样的学术氛围,也不可能让我坚定选择走现在这条路。 当我开始走上这条路之后,才发现原来身边有那么多人也在同一条路上,特别是大城市里面有钱人家的孩子。其实,不是每个人都适合走这条路的,甚至可以说,10个人中只有不到1个人才真正适合。记得在MSRA的时候跟年长的employee聊天,他说当初他们读书的时候也是很多同学都不顾一切踏上这条路,到现在,没有一个不后悔的。不过,我觉得我恰好是那幸运的不到一个。 之前看到同学在注册一个百度之星的编程比赛,于是自己也跟着注册,然后参加比赛。最后的比赛成绩并不理想,但或许是恰好上了某个分数线吧,前天百度发了实习生的邀请函,并且告知说转正的机率很大。上届我们实验室两个师兄也是这样进入百度的,最终都拿到百度的offer。要是一年前的我,肯定马上就回复百度准备面试了,毕竟在国内,百度开的薪水还是数一数二的。下学期就要开始找工作了,自己之前一直努力的目标就是找到一份好的工作。结果真正辛苦了几年,到了最后,却戏剧性地发现这已经不是自己的目标了。 June 19 SCU BSS讨论帖子==============回复1================ 算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门,就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实,大家被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。在“开复学生网”上,有位同学生动地把这些基础课程比拟为“内功”,把新的语言、技术、标准比拟为“外功”。整天赶时髦的人最后只懂得招式,没有功力,是不可能成为高手的。 =====================回复2====================== 其实ACM比赛里面的谈的算法,和现代计算理论的发展还有一定方向的距离。 June 05 Continue to study the advanced experimental programming toolsAfter having the taste of GSL, somehow, it is not considered as the MATLAB that used in a large group of people. Furthermore, the graphics function and data visualization of MATLAB are important to many users. Here, I tried to study MATLAB from now on. The list of program as followed is my first MATLAB programs. May 22 使用GSL来做实验熟悉C++做开发的我们,对于matlab, mathematics等软件总是不太习惯。同时,很多research的实验程序需要进行efficiency的对比,所以大部分采用C++是比较合适的。但是诸如矩阵运算,least-squares,随机分布函数等常规数学工具库,matlab实现起来是很直接的。幸好,GNU有一个GSL(GUN Scientific Library)库,里面使用Pure C实现,开放源代码,里面包含了大部分常用数学运算工具。这几天拿过来使用了一下,感觉很不错。这里有Windows版本http://gnuwin32.sourceforge.net/的下载。 虽然是Windows版本,但是里面似乎只提供了.def和.dll文件。通过Visual C++里面的lib.exe,输入命令:
就可以生成.lib文件了。 May 16 5.12地震 这次5.12地震实在太突然,太可怕了。 April 06 学生的职业精神是什么?没有姚明的火箭比赛,我依然喜欢看,特别是这个赛季的火箭队。这个赛季,火箭队取得了22连胜历史第二佳成绩,更有一种让人敬佩的精神。从斯科拉,兰德里,海耶斯,巴蒂尔,杰克逊这些球员,我们看到一个职业球员为了一个篮板球,地板球,奋不顾身地飞身鱼跃抢夺的那股劲头。他们的拼抢,即使在面对身体更占优势的奥尼尔,高大强壮的内线,位置不占优情况下,明知抢不过,也会依然全力以赴。这不就是我们所倡导的亮剑精神吗?其实,对于他们来说,也就是最基本的职业精神。这里不得不提同样新秀的易建联,拥有更好的身体条件,应该学习一下斯科拉,兰德里这些球员。 读研究生已经快2年了。实验室开展的论文讨论班参与同学人数越来越少。很多同学基本上一学期只来一次,还有一学期都见不到人的。正式导师所说,讨论班的论文学习,是学习知识快速的捷径。我自身感觉也是如此。很多同学在抱怨论文写不出来的同时,之前又读过多少呢?没有积累,哪里来的发挥?其实,CS的论文是很容易发的,各个新的领域不断产生,新的应用层出不穷,稍有积累便可一发不可收拾。可是,不少同学就连那么一点点的积累都不愿意去付出。 在NBA我们经常看到很多新人,在1-2赛季打过场均2-3分钟的垃圾时间过后,就从NBA赛场永远消失了。各位研究生同学们,是否愿意在人生的赛场上也是如此地消失? April 05 头脑VS心灵到中国可以不看三大殿,不可不看辜鸿铭。1915年辜鸿铭的《中国人的精神》出版,英文出版。这本书写于上个世纪初的一战期间,正值欧洲文明陷入危机之时,辜鸿铭的目的很明显,为陷于危机的欧洲文明、甚至整个世界文明指出一条出路。书中指出中国人的精神,有一条叫做Simple,不是“简单”而是“淳朴”。 中国人的淳朴,往往都是过着小孩一般的心灵生活。为什么说是小孩的心灵,因为从古到今,中国人自身始终难以吸取现代主流文明所崇尚的理性思想,理性精神,很难去理解和研究西方理性哲学。心灵对中国人做事为人的影响大于头脑。这样的中国人很可爱,但是不可敬。 西方有过针对意大利人和德国人的比较。德国人喜欢意大利人,但是不尊敬意大利人;意大利不喜欢德国人,但是尊敬德国人。大家都知道,整个欧洲,意大利这样的国家很多,都崇尚心灵上生活,对生活的享受。德国人的理性是出了名的。于是,这样的差异,造成德国无论在经济,军事等国力上远远高于欧洲其他所有国家。他们两次从废区中崛起,两次发动世界大战,横扫整个欧洲。 辜鸿铭对中国人的描述,应该是100多年前的中国人。这100年来,中国发生了很多变化,但是在人本质上,还依然遗留很多共同之处。可以说,当前的中国,虽然已经拥有了很多西方现代理性文明科技的成果,但是,真正理解到西方现代文明最基础的理性哲学思想人还是不多。理性哲学的思想,强调看待问题要透过事务,抽象到内部最本质的东西,不受心灵与情感的影响。马克思唯物哲学的思想恰好正是如此。大家也都知道马克思是德国人。西方文明的这种理性哲学,才是当前人类文明,最宝贵的财富。它不仅仅是现代科学技术的根基,也是现代国家社会行政,司法建设,国防军事指挥的立足之宝。 中国还是有很多愤青,有很多拍脑袋的领导。心灵支配着大脑,还是大脑支配着心灵? March 30 江安的水吧传说四川大学江安校区的图书馆是全国Top级别的。在图书馆旁边,还修了一个不大不小的江安水吧,名字还叫XX咖啡。这个水吧的地理位置太爽,从外面窗户外面,直接就可以看到江安的超大人工湖,很清净的地方。今天,参加了微软亚洲研究院MSRA的搜索技术中心STC的几个领导在江安的座谈会。几位领导针对STC做了一些介绍,然后就开始和大家的提问互答的阶段。因为对于搜索引擎的infrastructure的东西比较熟悉,以前在DIT组实习的时候,也都接触过,所以问了相关的几个问题。STC做的东西更加贴近产品,而之前DIT里面搞得,似乎更接近探索性的研究模型。本以为这次去座谈会,会有一些面试的考察,结果之前废寝忘食地复习《Introduction to Algorithms》。不过,还是有收获,至少已经把最重要的DP看完了,对于我们这些没有经历ACM集训的同学来说,DP是一个很值得学习的地方。 进入今年以来,什么事情都在赶,什么事情都很急,下周三还要报告ICDE08的一篇论文。为了准备座谈会,已经花费了整整两天的时间去准备算法,于是论文报告的事情就耽搁下去了。现在还有3天时间,只能尽量抓紧了。下一篇论文的deadline也快临近。事情总是堆在自己身前。算命的说我这一年会十分辛苦,十分累,需要有坚韧的意志去扛住这些事情,最终会有相应的回报的。现在看来,估计真的是这样的。 March 25 First paper comes out!这两天,总算把第一篇文章赶出来了。每天都活在一大堆数据里面,一次实验就要跑半天。幸好我有两台机器可以使用,否则实验一跑起来,CPU占用就100%了,什么事情都不能做了。第一篇paper居然做得那么不容易,中间题目换了又换,相关文章读了不知道多少篇。大家都说,第一篇文章最好找一个简单点的来做,那样容易获得信心。可是我的第一次,却偏偏选了一条困难的路来走,还好这个路上,我的意志还够坚强。总得说来,第一次走得那么辛苦,也并非坏事,至少那么后面的路就要好走一些。正如老板说的,做到这个份上,毕竟是尽力了,也学到了不少东西,即使最后没有中,也无悔了。重要的是走这条路的一个过程,这才是我们最大的收获。很高兴,我已经拿到了80%的收获,剩下的20%,就看审稿人是否愿意给我了。 February 15 Hard Drive无意中看到博客堂的一篇关于微软创业的帖子。回想当初,自己11岁的时候,就开始学习计算机编程,也是因为一本Bill Gates写的《未来之路》,才激发自己对于计算机,对于编程那么大的热情。 (转自博客堂Vincent Chen) 在没读过这本书之前,我也从没有考虑过这些问题,和很多年轻人一样,我不屑于微软的一些行为,这种“成见”自然而然地最终转嫁到盖子叔叔身上,毫无疑问,他就是“万恶之源”?。但是在读《Hard Drive》的过程中,我就被他们的创业经历深深吸引住了,因为从他们身上,我看到了曾经在脑海中向往过的那种充满激情和梦想的生活,所不同的是,我们的理想在不停地抱怨现实不如人意、社会不公平、环境不够好、教育制度扼杀了我们的天才和创造力中渐渐被遗忘;而他们,没有任何怨言和借口地将理想一步一步变成了现实! 其实最初我们都是一样的,年轻、精力充沛、喜欢幻想、毫无根据的自信、野心勃勃,但多年以后,我们在不断的抱怨中变得“很现实”,转而去追求各种各样眼前的利益,找一份工作、买车、买房,为年薪比别人高了两三万而沾沾自喜;而那些家伙,他们则把自己变成了这个星球上最富有的一群人。 《Hard Drive》不是国内很多企业在校园宣讲会上发放的那些自吹自擂的小册子(两位作者兼记者专门在前言中阐述了独立的写作背景),它用客观翔实的资料说明了一个事实:微软的成功并非偶然或是幸运,即使它的一些做法饱受争议,但它完完全全是靠一群非常聪明而富有激情的人脚踏实地推动而成的。 “I can do anything I put my mind to.” – Bill Gates P8 信念 记得小时候背课文,我们就经常被教育要像那些革命烈士般有坚定的信念,但是背过课文之后,我们果真理解了“信念”这两个字的含义了吗?还是说我们仅仅知道了“坚定的信念是人实现目标的精神支柱”很有道理呢?这句话是Bill Gates上Lakeside中学的时候给一位教堂牧师说过的话。那时他和一帮对计算机非常感兴趣的伙伴们整天泡在学校唯一的计算机室中摸索计算机这一新生事物,他们用的是纸带和电传打字机,通过远程连接一台DEC公司的大型机学习编程,Bill的第一个程序是Tic-Tac-Tor(井字游戏)。那时的他,就已经很认真地告诉他的好友,他会在25岁之前成为百万富翁。他说到做到,在之后的日子里,只要是他贯彻了“信念”二字的事情,的确都给了他丰厚的回报。 “We always had big dreams.” – Paul Allen P51 梦想 在Bill Gates和Paul Allen都还在中学念书的时候,计算机的使用费用非常高,个人用户必须向大型机拥有者按时间支付费用来获得远程登陆使用计算机的权利,于是他们通过给一家公司找操作系统的bug来挣得免费的上机时间。每天晚上,他们都会集合在公司的机房中,想方设法寻找系统漏洞,谈论对未来的畅想。那时Bill和Paul就都认为,计算机将越来越普及,软件的销售将成为一种新兴的产业。后来,Bill将这种想法用更形象的一句话表达出来,即那句著名的:“每个家庭的书桌上都摆放着一台计算机,上面运行着微软的软件”。我个人非常喜欢这种形式的Vision,因为比起现在一些“华丽”的口号,比如“让企业发挥它的潜力”之类的,它让目标和梦想变得富有现实感。 Gates eventually gave up any thoughts of becoming a mathematician. If he couldn’t be the best in this field, why risk failure? P64 抉择 Bill在刚上哈佛大学的时候,经历过一段时间的迷茫和彷徨,和很多聪明的学生一样,他平时不怎么上课,只在考试前猛学一通,然后照样拿A,剩下的绝大多数时间就是通宵和朋友们打扑克牌(他打完牌后常去找Steve Ballmer聊天…)。因为他很聪明,一度希望自己能在数学上有所建树,的确他也因为把一个有趣的“烙饼问题”的数学下界向前推进了一步而发表了自己的第一篇也是最后一篇论文。但是他后来发现有些同学数学上比他钻研得更深,所以他就放弃了在学术方面发展的念头,而工业界则很幸运地迎来了一位未来的重量级选手。在随后微软公司发展的过程中,对于微软究竟要做什么不做什么,因为软件产业那时还不成熟,Bill有很多可选项。但选择多了未必是好事,英国曾有个诗人说道:“我走到十字路口,于是无力地跪下”,太多的选择反而会干扰人的判断力。Bill最后坚持选择成为平台开发商,通过自己设定行业标准来占领市场的观点,让微软获得了长足的发展。做自己最擅长的事且做到最好,Bill的一次次抉择让微软在上个世纪八九十年代所向披靡。相比起来,我的前半生似乎都在不停地挥霍各种选择的机会,直到最终没得选择…… Gates simply liked pushing things to the edge. “That’s where you most often find high performance,” he said once. P127 执行 每个人都有很多梦想,但是我们的梦想往往因为缺乏执行,大多成为了闲聊时的谈资或者自欺欺人的夸夸其谈而已。Bill却不一样,他不光是要执行自己的想法,而且还要设法将执行的效率推到极致。他保持着从微软公司到机场花费时间最短的记录(也许是全西雅图的…),他总是驾驶着绿色的保时捷从一个地方飞驶到另一个地方(超速太多差点被吊销执照)。同样,对于他的下属,替他打工的经理和程序员们,他也通过持续不断的push把开发效率推到极致。正是这种持续不断的推动,让Bill或英明(比如采用鼠标和GUI界面)或愚蠢的想法(比如Microsoft BoB)一个个地得以成为现实,同时也为他挣得了巨额的财富。如果理想和现实之间存在着难以逾越的鸿沟的话,那么“执行力”就是跨越这条鸿沟的桥梁。 More than one unlucky programmer at Microsoft has received e-mail (from Gates) at 2:00 am. That began, “This is the stupidest piece of code ever written” P50 激情 “最初所拥有的只是激情和毫无根据的自信,但一切就从这里开始。”这是软库公司总裁孙正义说过的一句话。对于创业伊始的微软来说,这句话是再准确不过了。Bill是一个精力充沛的工作狂,在为MITS的Altair维护Basic编译环境时他就常常连续工作,支撑不住就睡在办公室的地毯上(曾经有一次被来MITS参观的客户看见…)。即使到后来不写code,成为管理层,他也依然恨不得每天工作24个小时,在微软的规模还不是太大的时候,Bill Gates事无巨细都会过问,无论是谈生意还是架构设计甚至代码编写,只要一发现问题,他就毫不留情地指出。这种激情,保持了微软不断向前,不断壮大的活力。而Passion这个词也成为了微软的核心公司文化之一,直到今天,还可以在最新的公司格言“Your potential, our passion”中见到踪影。反观自己,在不停地抱怨环境不如人意、命运多舛中,本该属于我们这个年龄的锐气和应有的激情被所谓的“老成”所取代,我们变得患得患失而不敢去尝试新鲜事物,对自己所从事的工作失去兴趣,也就没有了激情,生活变得索然无味,在长吁短叹中耗费了最宝贵的青春,很多机会也不知不觉从手中溜走。 But microkids expected to be challenged. And they expected to be able to challenge Gates. In fact, he wanted them to argue with him. P161 不惧挑战 Bill Gates的风格就是不断挑战别人同时也毫不畏惧别人的挑战,他挑战的对手不光有业界的竞争对手,也有替他打工的经理和程序员们。在项目开发中,他习惯于提出许多尖锐的问题,然后看程序员和经理们的反应,因为他认为不断地发问是把问题clarify的最高效方式,同时对于自己提出的观点,他也非常希望看到手下与他进行辩论,因为他认为这是找到正确解决方案的有效手段;当结果明朗后,他也毫不掩饰自己的错误,而是立刻纠正。在与业界对手的竞争中,无论对手多么强大,即使占据了垄断地位的市场份额,他也毫不畏惧,而是通过自己的执行和推动,做出可以抗衡的产品来,并从失败中不断吸取经验教训,进一步改进对策。就这样,随着历史车轮的滚滚前进,那些曾经叱吒江湖一时的Lotus 1-2-3、CP/M-80、WordStar等软件巨头都一个个轰然倒下,Bill和他的微软则笑到了最后。 “Believe me,” he said as the interview ended. “Staring out the window and saying ‘isn’t it great,’ is not the solution to pushing things forward…you’ve got to keep driving hard.” P419 永不满足 在微软刚创立的初期,那时计算机的硬件资源非常有限,优秀的程序员们总是毫不满足地想把程序写得越小越好,而Bill Gates,据说在微软内部一直保持着写出最小体积的Basic环境loader程序的记录。 诚如《Hard Drive》一书想要表达的观点:Bill Gates和微软公司能获得今天这样的成功,离不开以Bill Gates为首的一群非常优秀非常聪明的创业者坚持不懈的努力推动。导致微软公司成功的因素有很多,我所总结的只是这些因素中令我感触颇深的几点。我即将结束学业开始自己的事业,这本书让我反思了自己,也燃起了对创业的激情和梦想。努力做一个有坚定信念和伟大梦想,懂得选择,充满激情地执行自己的想法,不惧挑战、不找任何借口,永不满足的人,我相信,这些观点和《Hard Drive》这本书,将会影响我很多! January 31 最佳论文是怎样炼成的前几天看到MSRA拿了ACM SIGMM上的Best Paper,作为曾经也是一个MSRA的人,特此转贴一下关于作者介绍这篇Best paper的博客(http://blog.sina.com.cn/s/blog_4caedc7a01008io7.html) 文章太长了,摘取了里面我比较认同的几句话。 Q2:对于这篇“最佳论文”,您有什么样的经验能和大家分享吗? A2:说白了,也没什么秘密(笑)。首先,好论文的背后是扎实的、有理论和实际应用价值的工作,这是好论文的基础。只有好的想法才能最终产生出好的论文。其次,在写作中,我认为应该深入浅出,既要深入——分析问题要深入,又要浅出——清楚地表达自己的想法。我们的论文也是改了很多遍才确定的。当然,在大会上做演示也是很重要的。为了准备这篇论文的现场报告,我们小组内部排练了三次以上,我自己则准备了更多次。 Q4:您提到的这些方法也是比较主流的。 A4:当然对于研究的主流是需要了解的,至少要“知道”。从另一个角度说,视频标注这种问题可以看成是机器学习的理论、方法和工具的一种应用性研究。既然是工具,那么就必须了解,但不一定要全部精读。但是,作为应用性研究,只把这些工具作为黑箱拿过来就用,那多半是不能成功的。这就需要把握尺度了。我主张,还是应该先对工具有个基本的了解,然后针对某个问题,想办法用适合的或改进的甚至创新的工具。另一种说法是直接拿着问题去找工具,这个可能不是我所赞成的。 January 16 原来学习是如此地苦涩最近一直在忙第一篇Paper,虽然想法大致的框架成熟了,但是还有一些细节需要完善。这几天在电脑旁边做的事情就两件:看Paper和搜Paper。好不容易找到姜同学一起来合作,于是合作的前期工作就是看前人的paper。除了自己下的paper,大家也互相交流了不少。估计这几天看过相关的SIGMOD,VLDB文章没有10篇也有7-8篇了吧。回想以前研一的时候,一个学期也没读过那么多篇顶级的文章。 长时间专注一直看paper,人的精力消耗原来是如此之大。特别是同时看2-3篇都看不懂的时候,不仅眼睛都看花了,就连心理障碍也油然而生。原来学习是如此的苦涩。。。其实,读不懂别人的文章,很大程度上是因为自己的基础知识不够扎实。当我们总是抱怨论文上的数学公式太多的时候,恰恰就是自己数学功底不够扎实导致的。最近发现我也不例外,数学方面的确很需要补充一下。于是从学校FTP上找了一本讲解数值计算的经典教程《Scientific Computing - An Introductory Survey》,打算利用寒假的时候好好补习一下。 前几天看了《特务风云》,讲述整个CIA创始人从耶鲁大学毕业,到最后参与创建CIA中情局的故事。整个电影,给我印象最深的就是耶鲁大学的图书馆。在那种环境下,估计再心浮气躁的人,都会静下心来认真的读书的。 今天看到姜同学博客上写了一篇关于哈佛大学图书馆上的警句,深受鼓舞,特此转贴一下: 1.此刻打盹,你将做梦;而此刻学习,你将圆梦。 附上英文版: 1. This moment will nap, you will have a dream; But this moment study,you will interpret a dream. 2. I leave uncultivated today, was precisely yesterday perishestomorrow which person of the body implored. 3. Thought is already is late, exactly is the earliest time. 4. Not matter of the today will drag tomorrow. 5. Time the study pain is temporary, has not learned the pain islife-long. 6. Studies this matter, lacks the time, but is lacks diligently. 7. Perhaps happiness does not arrange the position, but succeeds mustarrange the position. 8. The study certainly is not the life complete. But, sincecontinually life part of - studies also is unable to conquer, what butalso can make? 9. Please enjoy the pain which is unable to avoid. 10. Only has compared to the others early, diligently diligently, canfeel the successful taste. 11. Nobody can casually succeed, it comes from the thoroughself-control and the will. 12. The time is passing. 13. Now drips the saliva, will become tomorrow the tear. 14. The dog equally study, the gentleman equally plays. 15. Today does not walk, will have to run tomorrow. 16. The investment future person will be, will be loyal to the realityperson. 17. The education level represents the income. 18. One day, has not been able again to come. 19. Even if the present, the match does not stop changes the page. 20. Has not been difficult, then does not have attains January 06 做研究,没有基础怎么行以前听说过很多人一个月,一个星期就可以写一篇文章出来,于是觉得只有有一个idea马上就可以写论文了,特别是对于很多职业写手来说,一年发个7,8篇的EI文章是很轻松的事情。其实,一个普通的idea,平时随时都可以想到,但是99%可能都是前人想过的,甚至做过得。为什么自己会觉得是一个新idea? 我想主要原因还是因为自己看得比较少,读的论文比较少,知识面比较狭窄导致的。一般人要找一个现在没有前人完全没有想过的问题,同时又是有实际意义的新问题,是几乎不可能的。或许现实世界,特别是当代中国,大家太从崇拜传奇了,认为一个人只要聪明,脑袋灵光,不学无术都可以,只要灵光一现,就能解决前人大师都没解决的问题。而实际情况呢,恰恰相反。往往自以为自己聪明的人,都是最傻的人。 最近做了一个多月的一个高维数据库空间索引方法,后来不断查阅论文,才发现,这种方法,早前10年多以前,就已经有不少人做过,甚至改进了很多。而我现在自己的想法,和前人的是如此地接近,类似。于是乎,我之前做的工作,基本上可以说是白费了,只是重复走了一遍别人在10多年前就走过的道路而已。 现在总结一下,为什么这样子呢?首先一条,就是连要做的问题本质没有摸清楚,做了大半个月,连这个问题是不是属于空间索引技术都不清楚,查阅的文献方向也错误了,还满以为自己是第一个做这样的问题。当后来查阅空间索引类似的文章才发现,类似的K-D Tree,X-Tree等很多早在10年多以前就做出来了,而自己初步思想还没有别人这些前人想得完善。其次,自己掌握的知识面过于狭窄。说起来都不好意思,虽说自己是学数据挖掘的,可是现在公认的"Top ten Data Mining Algorithms",自己真正掌握的,不到一半。还不要说2000年过后,诸多改进的,新环境下的新算法。而对于数据库,也仅限于课本上的基础知识。 以前在MSRA听过Harry讲过《How to do research》,收益颇丰。其中说过,第一流的研究者是提出问题的人,第二流的研究者是解决问题的人,第三流的研究者是改善解决方法的人。我觉得对于我们这种小硕来说,应该首先争取做到合格的第三流研究者。先学会follow一些顶级学者的论文,而不要一来就自己提问题,然后自己解决。先把要看别人的文章,如何解决问题的,如何改进问题的,然后在这些顶尖学者的文章下,提出自己新的改进。 最近每天都在不断阅读各种各样的论文,似乎有点感觉收获很大。感觉自己真的应该好好静心下来,读读课本,看看论文了。项目开发和学术研究的要平衡才行,自己之前过重于偏向项目开发,而忽略的基本的学术研究。这可能是之前比较喜欢做项目开发的原因吧。然而,最近读了不少论文,发觉自己也开始喜欢上做学术研究了,也喜欢看别人做的文章。到底将来走那条路呢?现在又开始模糊了。。。 January 01 2008来了December 24 C Low-Level I/O functions以前在看别人的很多代码时候,经常看到低级的C语言文件I/O函数。不过自己却从来还没有用到过低级的I/O函数。在纯C里面就f开头的stream用得多。这次要做SIDB在底层实现数据库存储文件,就得必须依靠低级文件I/O才能做了。因为低级文件I/O提供了某些功能,而高级文件I/O函数中没有。 这是我在网上找到为什么要使用低级IO的一些原因: 摘自: http://www.linuxtopia.org/online_books/programming_books/gnu_libc_guide/Low_002dLevel-I_002fO.html
下面是我总结一些文件必须使用Low-Level的I/O函数的原因:
关于Low-Level的文件I/O资料,可以在下面网址找到: December 23 关于Windows下C++开发的64位和32位通讯的问题现在64位的系统已经十分普及了。在MSRA实习的时候,几乎所有的Server都是64位的Windows Server,而我自己开发使用的机器还是普通的32位系统。在处理网络通讯的时候,经常需要把整数类型的数据转换成二进制流传输,那么就会遇到32位机器和64位机器之间通讯的情况。 C++默认的int变量,都是根据具体编译环境来定,如果是32位下编译,就是4个字节宽度,如果是64位机器下就是8个字节宽度。那么在通讯的时候,我们需要强制同意按照一种整数宽度来读和写。Windows SDK里面已经提供了一个自定义的数据类型来实现统一宽度。在windef.h里面,INT, UINT,DWORD等通过typedef自定义的数据类型,无论在32还是64位下,都是统一的宽度。下面是我从MSDN上找到的比较官方的说明: 摘自:http://www.microsoft.com/china/MSDN/library/Windev/64bit/MW6TWPchapter5.mspx?mfr=true
|