大约去年暑假时候,大把的时间精力又无事可做,就全放到倒腾这些百无一用的事情上来了。开始是看到一个项目,作者用php做了一个玩具,给用户上传的头像贴上性感的小胡子。当时就想,我可以做一个能够支持用户实时视频的,最后花了一周左右,也捣鼓出一个人模狗样的东西出来,就放在实验室的内网里,让师弟师妹门耍耍,后来也就慢慢忘了,十月底的时候,腾讯云的同事要征集一些小项目,把项目迁移到腾讯云,可以免费使用一年的云主机:). 哈哈,所以就有了此文。

如果有很多猴子分别使用打印机瞎打字,什么时候能打出一篇莎士比亚的作品? 好吧,我们不让猴子写巨著,给他一个简单的任务——帮我想出些不错的域名出来。域名已经是个非常饱和的市场了, 四位以下域名已经全部被注册了,七八位又太长,五位六位或许能淘到些宝贝。可是仅仅五位域名的组合个数已经突破了六千万个(365), 从里面挑出一个简直是大海捞针,更有人使用单词、拼音规则已经从里面筛选了一通。那么有没有精准一点的方法筛选呢?

人们对魏晋的兴趣多数来自世说新语,书中对当时名士的奇闻异事惟妙惟肖的描述,无形中给后世带来了巨大的影响力, 曹操乱世奸雄、右军爱鹅、子敬人琴俱亡都是出自其中大家所耳熟能详的故事。不过由于其中人物众多,同一个人有不同的称呼, 或姓氏,或名字,或职位,或小字,再加上期间两百年的时间跨度,导致我们对这段历史的认识是零星散布的。围绕某一人,某一事,或许可以 组织几个有趣的典故贻笑大方,而魏晋在历史上号称“门阀政治”,它的兴衰历程,是伴随着其他士族的兴衰交织进行的,一人一事不足以描述 这段波诡云谲的士族政治史。田余庆先生的《东晋门阀政治》便做到了这一点,由点串线,各条线再连成面,通过大量的史料交叉验证, 为我们展示了历史事件的因由、过程、以及结果影响。

这篇文章是读《东晋门阀政治》的读书笔记,只是简单梳理东晋的历史现象。后续计划做出一个系列,好玩的同时,加深自己的理解。

go的channel机制是语言内置的通信方式,可以轻松实现各个不同模块(协程)之间的同步、通信。本文利用channel实现一个简单的sub/pub系统原型。

大致流程为:server建立后,开启一个协程监听控制命令,server内部会维护一个注册表,记录订阅话题的用户,当要发布消息时候,将订阅该话题的用户逐个发送消息即可。具体实现的时候,订阅的用户被当作一个channel,控制命令也是一个channel,控制命令的channel负载用户的控制信息,其中包括用户的channel信息,通过穿针引线的方式,将主题与订阅的用户联系起来。命令channel达到了channel复用的效果,同时肩负着控制命令接收与分发的任务。

做这个项目纯粹是好玩。问题是这么来的,没事躺床上听歌,发现网易云音乐有个“听歌识曲”功能,对着手机唱了一段,然而并没有什么用。一度怀疑 自己的演唱水平下降了,甚至开始怀疑人生。不过经过一番研究后,却为我打开了一扇知识的大门。

原来网易不是让人唱歌识别的,它使用的是声纹识别技术,对音乐片段提取特征(傅立叶描述子)做哈希,也就是说对建好索引的音乐只有replay才能准确 检索到,同一首歌的翻唱、清唱都不会当作同一首歌。

原来我想要的是一个哼唱检索系统,学名叫 Query By Humming System,它与声纹识别的不同在于特征选取上。

我读书有个快捷方式,别人推荐的书不管多么富有盛名,随便翻看下就能看出个子丑寅卯来:作者的文笔如何、干货几分、才气几量,给个意会不言传的打分。故弄玄虚的,翻翻笑笑;话都说不明白的只好扔掉;内容新奇,史料丰富这样的往往能迅速抓取眼球吊足胃口。当然人参果子不能着急吃,还需要一些额外的小小准备:杯子水满上,桌椅滕挪利亮,再去厕所排泄一通,正襟危坐等待兔管家来叫我,然后随他掉进了兔子洞。

甲骨文这本书是从图拉鼎那里淘到的,不过他读的是江城,勾起了我的注意,顺藤摸瓜找到了何伟的三部曲。这也就是题中故事的来历。

为了适应互联网发展的浪潮,捣鼓出一个问答网站出来。集成问答、timeline、好友、话题、问题关注,以及简陋的热门功能。 采用tornado + mongodb实现,timeline使用push的方式,其中一些数据比如timeline没有使用redis存储,每次都是查询数据库获得, 比较简陋,算是学习web开发的一个实验品吧。设计的思路来自这个 以及 ruby-china。

最近一直在忙着做一个金融数据库系统的设计开发工作(当然不是database implementation了)。用mongodb搭建,能自动化导入数据并给不同语言提供查询接口。所以这个月俨然成为一个胶水匠,不停的给各个语言写wrapper。敌方阵营派出python、matlab、R与我交锋,史称“三英战tianyaqu”,奈何某技高一筹,均被我一一杀退。关于R开发的网上资料(中文)着实太少,统计之都上面给出的都是难度与官方timesTwo旗鼓相当的花拳绣腿。下面给出一些个人的浅薄经验,希望能给后人一些思路。

这当然不能作为一个开发R包的系统描述,Dirk Eddelbuettel大神给出的Rcpp tutorial Atutorial B 早已彪炳千秋,当然如果你想知道更详细、全面的底层实现,官方的Writing R Extensions 也是个不错的参考。

Monte Carlo在金融上的应用,一直想找个例子,百度给出的结果却都是老生常谈的算pi的例子,甚至李洋那本matlab量化也是如此。顺便批评一下这本书立意太低,matlab用法占了1/4,期权定价再重复一下赫尔书中的知识,最终竟然以均线交叉策略作例子结束。所以下面给出搜集的几个Monte Carlo在金融中的应用例子,以飨诸位。

文中的思路来源于Columbia 大学 Martin Haugh 的蒙塔卡罗模拟讲义,如有理解不到位的地方,请指正。

上周末受朋友所托,帮他做点毕业设计的东东,俗话说“论文已写好,还差个码农鸟”,此事便定下了。论文的方向是用马尔科夫模型(HMM,Hidden Markov Model)识别掌纹(准确来讲是用户认证)。之前在系里的无人车项目中应用了马尔科夫模型,这刚好也是我的毕业选题,估计这也是他找我的原因。

看到这个题目的人,如果对马尔科夫模型有所了解的话,一定会很奇怪,马尔科夫模型建立的两个关键要素是观测序列与状态转移,这怎么体现在掌纹上呢?