Archive: 2015/10

【译】深入理解python3.4中Asyncio库与Node.js的异步IO机制

译者:xidui原文: http://sahandsaba.com/understanding-asyncio-node-js-python-3-4.html 译者前言 如何用yield以及多路复用机制实现一个基于协程的异步事件框架? 现有的组件中yield from是如何工作的,值又是如何被传入yield from表达式的? 在这个yield from之上,是如何在一个线程内实现一个调度机制去调度协程的? 协程中调用协程的调用栈是如何管理的? gevent和tornado是基于greenlet协程库实现的异步事件框架,greenlet和asyncio在协程实现的原理又有什么区别? 去年稍微深入地了解了下nodejs,啃完了 朴灵 的 《深入浅出Node.js》,自己也稍微看了看nodejs的源码,对于它的异步事件机制还是有一个大致的轮廓的。虽然说让自己写一个类似的机制去实现异步事件比较麻烦,但也并不是完全没有思路。

mongodb集群(一)——搭建

1.前言之前有一篇博客是介绍了搭建mongodb的replica set集群的。这次系列将会对mongodb做一个更为详细的介绍,这篇主要讲的是mongodb数据分片集群的搭建。 分片(sharding)、副本集(replication)与分布式文件系统(比如 hbase)的区别: 副本集集群中的每一个节点的数据都是相同的,有一个primary,1~7个secondary,数据写入primary节点后会同步给所有的备份节点,可以很方便地作读写分离。还有一个可选的arbitary节点,当primary节点宕机后,由arbitary节点从secondary中选出新的primary节点。如果没有arbitary,则由所有secondary节点共同决定下一个primary节点。 数据分片集群中,每一个数据节点存的数据都是不同的,互作补充。由预先定义的字段或者组合字段作为分片的依据。往集群中新增分片节点,数据库会自动作数据迁移,使得存储负载尽可能平均。(某个节点挂了,部分数据访问不了怎么办,如何作数据的高可用?) 分布式文件系统是文件系统,数据库是一种定义的数据存储格式。数据库的数据在文件系统中也是以多个文件的形式存储的,而文件就是存储在文件系统中的。

期望最大化(EM)算法matlab实现

一、前言看了吴军博士的《数学之美》感觉受益颇多,好书!第二版第27章讲的是期望最大化(EM)算法,看完就感觉如醍醐灌顶,而且原理上也不难,趁国庆的机会,把它实现了,加深一下理解。 EM算法 的范畴很广,之前几章的 最大熵算法、隐含马尔科夫模型的训练算法 都包括在内。用它做一些文本的自收敛分类效果很好,而且运算复杂度也不高,是一个很不错的选择。当然,关于文本的分类,前几章也有介绍一些其它的算法,也可以去参考一下。