存档

2011年10月 的存档

推荐一个课程

2011年10月30日 12 条评论

一直以来,对机器学习这个领域比较感兴趣,但由于平时所做的工作与这个方面关系不大,所以一直也没有深入、系统的学习过。但由于比较感兴趣,所以平时也零零散散地了解过一些相关的内容。小时候读书的时候,听老师说21世纪是信息爆炸的时代,现在是真真切切的感受到了。随着人们可用的信息量越来越大,如何在如此庞大的信息海洋中找到对自己有用的信息,成为了一个越来越重要的领域。而机器学习,在这个领域中的作用越来越大,越发觉得它将是未来改变世界的一把利剑。举几个生活中比较常见的例子,现在比较火的一些sns社区中的个性化推荐引擎,这个东西威力真的很大,它通过对已有数据的‘学习’,然后把你感兴趣的事物推荐给你,从人们主动去搜索,到被动的被推荐,这中间有一个质的飞越,毕竟人的本性都是懒惰的,再说很多时候,并不是每个人都清楚的知道自己喜欢什么,而推荐引擎所推荐的,很多时候都是你喜欢的,这个够神奇吧。再举一个垃圾邮件的例子,相信几年前email刚流行起来的时候,大家对这个事情都比较头疼。垃圾邮件的处理,也是一个很好的机器学习的例子,基本的思路是通过对已有的一些垃圾邮件进行特征提取,然后利用这些特征和垃圾邮件数据训练出一个识别垃圾邮件的模型,做的好的这样的模型准确率和召回率都还是挺不错的,现在像qq和163这些邮箱的邮件反垃圾还都不错的。这些机器学习相关的例子,都是与我们的生活关系非常密切的,信息技术越发达,机器学习的作用越大,我称之为可以改变世界的一把利剑。 阅读全文…

漫话C++0x(四) —- function, bind和lambda

2011年10月23日 4 条评论

本文是C++0x系列的第四篇,主要是内容是C++0x中新增的lambda表达式, function对象和bind机制。之所以把这三块放在一起讲,是因为这三块之间有着非常密切的关系,通过对比学习,加深对这部分内容的理解。在开始之间,首先要讲一个概念,closure(闭包),这个概念是理解lambda的基础。下面我们来看看wikipedia上对于计算机领域的closure的定义:

A closure (also lexical closure, function closure or function value) is a function together with
a referencing environment for the non-local variables of that function.

上面的大义是说,closure是一个函数和它所引用的非本地变量的上下文环境的集合。从定义我们可以得知,closure可以访问在它定义范围之外的变量,也即上面提到的non-local vriables,这就大大增加了它的功力。关于closure的最重要的应用就是回调函数,这也是为什么这里把function, bind和lambda放在一起讲的主要原因,它们三者在使用回调函数的过程中各显神通。下面就为大家一步步接开这三者的神秘面纱。

  • 1. function
  • 我们知道,在C++中,可调用实体主要包括函数,函数指针,函数引用,可以隐式转换为函数指定的对象,或者实现了opetator()的对象(即C++98中的functor)。C++0x中,新增加了一个std::function对象,std::function对象是对C++中现有的可调用实体的一种类型安全的包裹(我们知道像函数指针这类可调用实体,是类型不安全的)。我们来看几个关于function对象的例子: 阅读全文…

    分类: 程序人生 标签: , , , , ,

    Happy Birthday!

    2011年10月19日 5 条评论


    又是一年的今天,猛然发现来深圳已经三年有余了,不变的是每天简单、充实的生活,变了的是一颗渐渐老去的心。QQ空间、微博上收到不少朋友的祝福,突然觉得有点感慨。刚上大学那会儿,同学、朋友过生日,都是通过写信、发短信或者打电话的方式来祝福,后来慢慢变成了email, 现在又变成了sns的虚拟礼物或者微博,这样的过程,正是这些年来互联网发展的过程,互联网正在慢慢改变我们的生活,每一个角落都不放过。

    今天也是doubletony同学的生日,大学时一个班的兄弟,同年同月同日生,这种小概率事件,能聚在一起是多么的不容易。自从知道是同年同月同日生,无论身在何处,每年都要相互祝福一下。今年是他先在微博上提起,我才突然想起。在这里也祝福一下,tony兄弟在米国好好加油,坚守自己的理想,生日快乐!
    阅读全文…

    分类: 生活感悟 标签:

    再谈“事件驱动”

    2011年10月16日 1 条评论

    之前也写过一些关于事件驱动模型的文章,事隔一年多,再谈起事件驱动,又是一种新的感触,借此文来分享一下,希望能够帮助到在工作、学习中在这方面遇到困惑的朋友。

    通常,我们会把轮询和事件驱动拿来做对比,关于它们两者,我在《浅淡“事件驱动”》一文中有举过一个传统邮件和电子邮件的例子,可以帮助大家来理解。轮询的最大缺点是盲目的做,CPU浪费很严重;事件驱动解决了浪费CPU的问题,它只在需要做的时候做,但是在实现上相对要复杂一些。不过总的来说,再复杂的模型,只要理解了它的原理,都阻挡不了聪明的人类使用它的步伐。

    工作的两三年的时间里,陆陆续续也做过不少项目,写过不少程序。每次写新的程序,或者是看别人写的程序,都多多少少对会反思自己以前写的程序中使用过的一些模型,想着如何来改进它,使得程序的可扩展性,可复用性等越来越好。通过这样的一些过程,自己也确实发现了变化,也积累了一些经验,总结一下,分享给大家。接下来我将通过一些实例,来介绍事件驱动模型在实现的过程中需要注意的一些点。 阅读全文…

    纪念乔帮主

    2011年10月9日 5 条评论

    刚刚过去的国庆,对于所有的人来说,都是非常的不平凡,苹果新品发布会在吸引了足够多的眼球后如期而至,结果因为没有果粉们期待已久的iphone5,使广大果粉大失所望。第二天一大早,上微博,发现乔帮主上船了,新浪微博、腾讯微博,几乎全是是关于乔帮主上船的消息。看到有网友调侃说“做人应像乔布斯,活着刷我们的卡,死了刷我们的屏”,虽说有点俏皮的味道,但也不失为事实。

    对于我自己而言,第一次知道乔帮主大概是在07年底,抑或是在08年初,当时我们的软件工程老师从美国带来一台iphone,在课堂上给我们show,让我们体验,当时真的非常震惊。那时起,知道了iphone,后来也自然而然地知道了乔布斯。

    后来到了2009年下半年的时候,李开复离开谷歌,当时写了一篇很题为《再见,谷歌》的博文,向社会各界阐述他离开谷歌的原因,向谷歌告别。这篇文章在当时也算是轰动一时,在博文的最后,开复引用了一段乔布斯的话来做为结束语,至今让我记忆犹新——“最重要的,拥有跟随内心与直觉的勇气,你的内心与直觉多少已经知道你真正想要成为什么样的人。任何其它事物都是次要的。”从那时起,乔布斯这个名字,已经深深的烙在我的心里,’Follow your heart’也成为了我自己很多时候来做抉择的标准。 阅读全文…

    手把手教你玩转GDB(2)—在GDB中玩转STL(ppt)

    2011年10月1日 19 条评论

    上周给team成员分享的—-GDB系列第二弹—-主要内容是分析STL中常用容器的结构,教大家如何在GDB中玩转STL,让STL的调试不再头疼。如果对GDB不是很熟的朋友,我之前推出过一系列的GDB相关的文章,可以先看一下之前的文章,然后再看这个会轻松一些。之前的GDB系列文章参见下面的“相关文章”列表。下面是flash版的PPT,大家可以先堵为快:

    Get Adobe Flash player


    如果觉得flasht版不够给力的朋友,可以在下面留言,向我索取原始的ppt版本,记得留下邮箱地址。或者到新浪微博,收听小武哥博客(http://weibo.com/zeshengwu),然后给我发私信索取,谢谢!