
刚刚看完vgod这个大牛的《追求神乎其技的程序设计之道》 ,很有些感想。
《追求神乎其技的程序设计之道》 是一个系列,开始写于2008年7月5日,结束于2009年12月18日,总共十篇博客。讲得是vgod的学习程序设计的过程和感想,他从初中时期开始写程序,由basic入门,进而C、C++、Java、Python、perl,玩转linux、mac OS、unix等,高中时全身心在搞IOI,快毕业时还挂了九门课,其间过程不可谓不疯狂,读来令人心潮澎湃,恨不得再年轻一回,也疯狂一把。
本人从初中接触电脑开始,高中学习Pascal入门,进而C、C++,那个时候也挺疯狂,天天拿本厚砖头在晚自习读,偶尔乘班主任不在溜到电脑室,但也仅仅是晚自习而已,远不及vgod全天候疯狂,到了高三还要收敛身心搞高考,还好底子还在,好歹考了咱们湖南排名最高的大学。到了大学阶段,有点不思进取,以为已窥门径,没什么可学的了,到外面兼职赚钱去了,到了大三时,看了泛型、Boost、元编程,才知道自己是井底之蛙。再看看大牛们都在干什么,才惊觉自己实在浅薄。大学已经进入尾声,已经发觉得有点晚了。到了研究生阶段,除了买大量的书,看大量的书以外,就是写代码,玩linux,看大牛的博客,这才稍微觉得自己赶上了形势。
读完vgod的追求神乎其技系列,觉得要干成一件事情,要有下面几条: Read more…
去年寒假放得长,有个把月,是毕业工作前的最长的假期了。
回家之前,跟小曼去万达排了两次队,抢阿凡达的票。第一次,小曼八点钟起床,跑到万达排队排到十二点没买到票;第二次,我们六点钟起床,跑到万达,满以为可以排到前面,谁知早就排了两条长龙,跟买火车票的队伍差不多,还有黄牛炒票,五十块一张卖到一百五。后来还是小曼托一个刚认识的姐姐帮忙,才买到隔两天的票。在回家之前一天,总算看到了传说中的IMAX版阿凡达,效果的确非常炫,小曼戴着3D眼镜还有点头晕,过一会儿才适应了。
1月26日坐火车回家,本来买的是站票,上了火车发现座位很多,我和小曼都有座位一路坐到衡阳。下了火车,肖高明来接我,我们到电脑城转了圈,帮他看了看电脑,中午一起吃了顿饭就往回赶了。去坐公交车的路上,碰见个想抢包的,等公交车时,又碰见一个专门朝女孩子背后弯腰站的怪人,上了公交车,发现衡阳的红绿灯没有用,人可以到处走。好不容易到车站坐车回家了,碰巧司机是我小学同学,我们差不多有十多年没见了,他没怎么变,不过有一个上小学的女娃了,差距啊。
到家后,家里正在干塘,小曼还没有见过捉鱼的场面,见到一群鱼争着往天上跳,那个兴奋啊。我见有很多人在塘里摸螺丝,想让小曼尝尝家里的唆螺,就也拎个桶下塘摸,第二天又用钳子夹唆螺,炒了吃,比长沙买的好吃一百倍。我们在家呆了一阵,又上外婆家玩了,顺便逛逛镇上,带小曼去看了我读的小学。过了几天,到衡阳去买到小曼家的火车票,住在大姨家,大姨二姨小姨表弟表妹们都在,挤一桌吃饭的感觉非常好。隔天我们和表弟表妹去老地方吃臭豆腐,我吃过两次了,知道那里臭豆腐的威力,提前买好了水,小曼吃了几片,辣的眼冒金星,两眼发黑,半天才回过神来,太好玩了。不过辣归辣,那里的臭豆腐还是非常好吃的,比校门口的臭豆腐还好吃啊。本来想在衡阳买票,结果买票时间改了,叫表弟帮忙买了,我们又回家了。
Read more…
时间好快,嗖的一声,2009飙过去了,2010飙过来了。
要说对2010新年到来有什么感想,最想说的是不要牙疼,尤其是与智齿有关的牙疼。大前天凌晨4点,我从梦中疼醒了,不知道什么原因牙疼得厉害,死撑了一天,一边脸肿起来了,从脸型上看终于胖了。前天实在挨不住买了一片止疼药,晚上才睡成觉。昨天撑不住了,跑去医院检查,说是牙龈发炎化脓了,先是被医生在口腔里一顿猛戳,疼得眼泪都要飙出来了,然后就是吊了两瓶。输液的时候,护士同志的技术太好了,在我手上戳了三次,才找对位置,有苦难言阿。
牙疼不是病,疼起来要人命。本来去年长智齿的时候,已经让我领教了,接连长了四颗智齿,我都挺过来了,有点要来个大团圆的结局的迹象,可惜老天硬是宁杀错,不放过。这回牙疼实在超出我的预期了,终于败下阵来。
看看这两天互联网的新闻,也是不平静阿。先是百度被黑,后是google要退,都是头条的大事。生活就像个茶几,上面摆满了杯具,乐观点说,也摆满了洗具。最近查黄有点厉害,断网也有点厉害,局域网雏形初现,对国内网民来说从此天下太平了,再也不用过这么担惊受怕,惊险刺激的生活了,老大哥很照顾网民阿。
Read more…

前几天看到IPV6下有一些很好的网站,可惜一直没有用上IPV6网络。看到校园网可以上IPV6了,赶紧赶上潮流,用上IPV6的网络。
IPV6的地址有128位,总共八个段,每段16位,格式类似于XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX,X为16进制,每段开始的零可以省略,如果中间有些段的值为零,可以用::表示,但::只能出现一次,比如XXXX:XXXX::XXXX就表示中间第3-7段为0。IPV6的地址有以下几类:
- 本机地址。0000:0000:0000:0000:0000:0000:0000:0001,简写为::1。相当于IPV4中的127.0.0.1。
- 未明地址。0000:0000:0000:0000:0000:0000:0000:0000,简写为::。相当于IPV4中的0.0.0.0。
- IPV4映射IPV6地址。0:0:0:0:0:ffff:a.b.c.d/96,简写为::ffff:a.b.c.d/96。a.b.c.d就是IPV4地址。
- 本地连接地址。fe80:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX,只能在局域网内使用,不能通过路由器,不能联通外界。
- 私有网络地址(局域网)。fec0:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX,同IPV4中的10.0.0.0/8类似。
- 全局地址(全球唯一)。2XXX或3XXX开头,最初定义和使用的测试网地址以3ffe开头,而2001开头一般是ISP逐级分配的全局地址,2002开头的是隧道机制的地址。自动分配的全局地址的后64位是以MAC地址为基础,使用EUI-64方法计算出来。
- 多播地址。ffXX开头。
由于IPV6中网址的极大丰富,因此不需要区分私有网络还是公有网络,都可以直接使用全局网址,因此路由的时候不需要地址转换(NAT)了。
由于本人在局域网中,需要在网关上安装IPV6自动配置软件,在linux下这个软件是radvd,为局域网内的机器自动配置IPV6地址。网关需要为两个网卡分别配置IPV6地址,如果网关的外网网卡能够自动获取IPV6地址,则不需配置,否则需要去找网管问一下。外网网卡全局地址一般为2001开头,内网网卡需要手动设置,ip addr add 2001:XXXX:XXXX:XXXX::1/64,外网网卡如果需要手动设置也可以用这个命令,同时需要修改radvd的配置文件,为局域网配置IPV6地址,其格式如下: Read more…

在达尔文的进化论中,自然界物种间和同物种个体间,因为生存竞争而优胜劣汰。但随着人们对自然界的不断观察和研究,发现自然界不只存在竞争,而且存在利他合作,对达尔文进化论进行了补充和发展,形成了新达尔文学说。在自然界中,同一物种和不同物种的种群之间,都存在竞争和共生关系,并且合作比竞争更为普遍。
1990年,Daniel Hillis受Hamilton启发,创造性地将自然界中捕食者-被捕食者的协同进化现象(predator-prey coevolution)引入进化算法,提出了协同进化算法(CEA,co-evolutionary algorithm),并将之用于求解排序网络优化问题,取得了良好的效果。
在Hillis提出协同遗传算法中,存在两个种群,一个种群是候选解,一个种群是测试集,每次只选取少数具有高难度的测试对个体进行评估,两个种群互相评价,共同进化,类似于自然界中捕食者与被捕食者的相互促进的关系,形成协同进化。该算法不仅可以避免陷入局部最优,而且大幅度提升了计算效率。
Paredis在Hillis基础上,加入了个体全生命周期适应值评估机制(LTFE,life-time fitness evaluation),从而能够引入多种个体学习机制(LTL,life-time learning),包括Back-Propagation等学习机制,形成了更强大的协同进化算法,并将之用于优化分类神经网络和求解约束优化问题。
与一般的个体评估机制不同的是,全生命周期适应值评估机制不是单纯的使用适应值函数评估,而是尽量将复杂的问题分成小问题,每次评估一个子问题,并且是两个群体互相评估。这样既减小了评估代价,并且总是优先解决当前较难的子问题;同时,种群也不易陷入局部最优,保持了较好的多样性。特别是在求解约束优化问题时,将约束条件作为一个种群,使用全生命周期适应值评估机制后,搜索效率提升明显,具有更强的搜索可行解的能力。

Dropbox是最近冒出来的一个非常好用的网络备份与同步工具,于2007创办的,收到大名鼎鼎的Y Combinator的天使投资,现在已经三家VC加入了投资行列,目前已发展到数百万用户。
Dropbox是一个非常简单的工具,相对来说比Microsoft的LiveMesh具有更好的跨平台性,又比Live SkyDrive 要简单易用。如果有些同学使用Gmail或者Google Docs作为备份工具的话,Dropbox更稳定,而且备份操作更简单,还具有同步功能,更为强大。唯一需要担心的是,因为是国外的服务,有被墙的危险。
Dropbox 的免费容量是2G,比LiveMesh的5G和SkyDrive的25G的容量小,但是如果能够推荐亲朋好友使用的话,每推荐一个可得250M的容量,最多可得到3G的额外容量,另外也可以付费购买更大容量。
使用很简单,在linux、windows、 Mac OS均可安装,装好后可以设定一个同步和备份文件夹,有什么需要备份的东西往这个文件夹里扔,Dropbox就会自动备份,而且如果有几台机子或者装了几个系统的话,Dropbox还会自动同步这些文件夹里的内容,几乎不用什么操作。如果你就在这个文件夹里工作,那都不用扔文件,有什么修改和更新,Dropbox自动备份和同步。
因为我在机子上同时装了windows、Linux系统,而且也需要对一些重要的东西备份,先前使用的liveMesh只能在windows下工作,而其他的还要自己手动上传或者复制,既麻烦又占空间,Dropbox对我来说真是个好工具,使用非常爽。
Read more…


以前一直使用Eclipse的CDT插件进行开发,构建系统也就使用CDT自带的。最近几日因为要修改EA程序,打算转到vim编辑器,并使用GNU的构建系统。GNU的AutoTools构建系统,包括autoscan、aclocal、autoconf、automake、autoheader、libtool等工具,是一个完整的工具链。其构建步骤如下:
- 先使用autoscan扫描源代码目录,生成configure.scan文件。修改configure.scan文件中的内容,具体修改内容可以参考相关网页,并将其改名为configure.in,作为aclocal的输入。
- 使用aclocal扫描configure.in文件,生成aclocal.m4文件。
- 使用autoconf扫描configure.in和aclocal.m4文件,生成configure脚本文件。
- 创建并编辑Makefile.am,具体修改方法可参考相关网页,使用automake扫描configure.in和Makefile.am文件,生成Makefile.in文件。
- 创建并编辑acconfig.h文件,具体修改方法可参考相关网页,使用autoheader扫描configure.in、aclocal.m4和acconfig.h文件,生成config.h.in文件。
- 执行configure脚本文件,扫描Makefile.in和config.h.in文件,生成Makefile文件。
- 执行make命令,构建可执行程序。
步骤还是蛮多的,不过功能还是非常强大的,能够自动检测环境和依赖关系,生成Makefile文件,用得熟了,有些步骤还可以省略,具体可见网页1和网页2。如果写个脚本,将这些步骤自动化,作为值守进程,就可以自动构建了。但是还是显得比较复杂,要同时面对几种工具和脚本语言,而且这个工具链只能在Unix/Linux系统下使用,在Windows下使用很困难,不具有跨平台移植性。
而CMake,能够为多个操作系统平台多种编译器提供makefile,包括Windows、Linux、Solaris、Unix、Mac OS X、FreeBSD、……等。而且,CMake只需要一个配置文件CMakeLists.txt,编译速度也比autotools快一些,具体优势可见网页3。
由于CMake具有的优势,一些大名鼎鼎的开源软件纷纷投靠了CMake,包括KDE、Boost、MySql、….等,估计未来还会有更多投靠的。KDE的开发者Alexander Neundorf介绍了为什么转移到CMake。当然也有一些autotools的粉丝从另外的观点反驳,autotools每个工具都专注一个任务,具有更大的灵活性,符合UNIX的一贯哲学。其中Luca Barbato和Alexander Neundorf的论战最为精彩。
Read more…
八月底的时候,找工作的事情就提到了最重要的等级上了。我写了份简历,自己觉得还可以,写完简历上QQ。结果意外在群里看到余子玉吼了一声,知道可以找他帮忙内推百度。刚开始,我都不知道有内推这回事,经过余子玉同志用心良苦的教育,我才意识到这是一个很好的机会。又经过他的诲人不倦的艰苦教育,我认识到写简历是个技术含量很高的活。修改好简历,拜托他师兄帮忙内推了百度。
到了9月29日,百度来了电话面试。面了大概二十多分钟,针对简历问了项目经历,每个项目怎么做的,问得很细。然后还问了项目中最难的地方是什么,怎么克服的。然后还问了有没有多线程经验等。大概就问了这些,三十多分钟就过去。电话面试是针对内推的人进行的一轮筛选,表现比较好的进入面试阶段,表现还可以的参加笔试,不适合的就淘汰了。
电话面试过后,国庆就一直呆在实验室准备面试的事情。10月9日上午百度就打来电话,约我下周一下午面试,问我是当面面试还是电话面试,刚开始我怕麻烦想电话面试,但想一想当面面试更有诚意些,就约好当面面试了。接下来就是买火车票,准备money。没想到的是,火车票这么难买,居然都没有火车票了,只好打电话让我哥帮忙买黄牛票。结果第一个黄牛也跑票了,说好了的票没有了,又只得找第二个黄牛,买了一张超级慢的K186,要二十多个小时。小曼帮忙收拾好东西,准备了两本书,带上了她的笔记本。上了火车,路上看看书,晚上用小曼的小本本看看文档。
周一上午十点半终于到了北京,坐319到了余子玉那里,吃完中饭在他宿舍休息了一会儿。下午三点半就打的到了普天大厦,四点钟上楼到了前台,前台MM给贴了一张Baidu Friend,然后在会议室等。等的时候,发现百度真如传说中一样,无论帅哥还是MM,都是捧着一个笔记本到处走。
Read more…

柯林斯(Collins)是Marcus的高徒,现在在MIT任教。Collins在2003发表于《Computational Linguistics》上的论文《Head-Driven Statistical Models for Natural Language Parsing》中提出了三个头驱动统计模型,其实就是其1999年的博士论文的精简版。该模型在当时是性能最好的句法分析模型。
柯林斯的头驱动统计模型,本质上属于基于历史模型,论文中该模型用于句法分析。句法分析的输入是词性标注过的句子,输出则是具有句法结构标注的句子,其结构可用句法树来表示。句法树有很多种,根据算法不同有不同的选择。句法树的构建过程就是一个决策序列,决策序列与句法树是一一对应的。句法分析的文法模型,总体来说有概率上下文无关模型(PCFG)、词汇概率上下文无关模型(Lexicalized PCFG,以下简称L-PCFG)、基于规则模型,应用得最广泛的是概率上下文无关模型。PCFG模型简单有效,但其独立性假设忽略了很多可以利用的信息,性能上不及L-PCFG模型,而柯林斯正是在L-PCFG模型基础上改进,利用了更多信息,提出了用于句法分析的头驱动统计模型,因此准确率达到了当时最高峰,但实现就比PCFG复杂了许多。
其第一个模型中,修改了L-PCFG的独立性假设,将规则概率的计算公式简化为一个个小的句法标注符概率的乘积,这个步骤不仅复杂度得到降低,而且大大缓解了数据稀疏问题。其后,又在模型中加入了距离信息,使得该模型的性能一举超越其他模型。
柯林斯在这时并没有满足,而是继续在第一个模型基础上,加入了补语分类信息,形成了第二个模型。在很多时候,补语的结构容易被错误标注,这都是由于补语结构没有另外的标注符号,导致统计模型中不能区分,从而导致误标注。柯林斯对语料库进行了改造,加入了新的标注符号,区分补语结构,并在规则概率计算公式中加入对补语结构概率的计算。该模型能够区分补语结构,从而降低了误标注率,性能进一步提升。
Read more…

计算机可能善于计算,但是能否知道感觉呢?博客和社交网络的上升,带动了挖掘个人观点的牛市,包括评论、打分、推荐和其他的在线形式。对于计算机科学家来说,急速增长的数据打开了一扇收集网友感受的大门。
一个名叫“情感分析”的新兴领域逐渐成形,这是计算机世界的一个尚未开发的前沿:将各种人类情感转化成实实在在的数据。
这不仅仅是一个网络开发演习,对于许多企业来说,在线观点更像虚拟货币,能够造就或者毁灭一个产品。
现在,在对产品如潮水般涌来的网络批评或赞扬中,许多公司处理不及,陷入漩涡中。随着情感分析工具的形成,它们不但能够改善企业的生命线,还能够给在线搜索带来转变。
几家情感分析公司正试图满足企业们的对在线言论的商业兴趣。“社会化媒体曾经被认为只是25岁顾问眼中的可爱项目” 旧金山的Scout Labs副总裁Margaret Francis说道,“现在顶极执行官都已经认识到,对于商业智能来说,这是一个不可思议的富矿。”
风险投资青睐的Scout Labs公司,由CNet创始人Halsey Minor创建,最近介绍了一种订阅服务,能够帮助客户监测博客、新闻、论坛和社会化网络网站,以识别对产品、服务或新闻主题的言论动态。在五月早些时候,StubHub票务公司使用Scout Labs的监测工具,监测到一场因雨延迟的Yankees对Red Sox比赛所带来的突然上升的负面博客情绪。
Read more…
最新评论