加载中…
个人资料
梁喜健
梁喜健
  • 博客等级:
  • 博客积分:0
  • 博客访问:208,989
  • 关注人气:66
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
新浪微博
我去过的地方
国内 (8篇)
国外 (0篇)
站在小丘我四下望
我的音乐
评论
加载中…
留言
加载中…
访客
加载中…
好友
加载中…
博文
    PySpider是由国人开发实现的一个分布式爬虫框架,最近公司的AI团队需要爬取一些数据来丰富语料,所以最近搭建了一套PySpider爬虫集群。因为公司在阿里云上的服务器主要使用CentOS 6.5系统,安装PySpider过程中遇到了不少问题,以下就将安装过程记录一下,希望对遇到类似问题的看客们有所帮助,具体安装过程如下:

1、根据pyspider官方推荐的安装方法,使用pip命令直接安装pyspider
# sudo pip install pyspider
Installing collected packages: click, itsdangerous, Werkzeug, Flask, chardet, cssselect, lxml, pyquery, ordereddict, backports.ssl-match-hostname, singledispatch, certifi, backports-abc, tornado, Flask-Login, u-msgpack-python, wsgidav, pyspider
  Running setup.py install for click
  Running setup.py install for itsdangerous
  Running setup.py install for chardet
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
       最近本博主在阅读MongoDB的Golang版本驱动mgo的源代码,一来是想通过阅读一些优秀的Golang项目代码进一步学习Golang的高级用法,二来是因为目前公司的一些项目都在使用mgo作为MongoDB的驱动,理解其内部实现有助于更好地使用它,三来则是想通过阅读驱动代码迫使自己更加细致地去了解MongoDB的通信协议,从另一个角度加深对MongoDB自身功能的了解。

       在mgo中所有对MongoDB服务器的读写操作均通过Session来完成,无论Session连接的是MongoDB单点、复制集还是分片集群中的mongos。当Session首次被创建去连接参数给定的MongoDB服务器种子节点的时候,Session本身需要去识别它要连接的MongoDB服务器到底是单点、复制集还是mongos。如果连接的是MongoDB复制集,在参数没有提供全部节点列表的时候,Session需要主动去发现列表中未给出的节点。另外,因为复制集在发生Failover时可能会发生Primary节点切换导致复制集内部节点角色的变化,所以Session内部也需要有一个定期同
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
       前段时间本博主一直在做Golang和C语言的混合编程,期间在通过cgo调用C语言库时会出现程序崩溃的情况,于是就希望能够生成core文件来查看程序崩溃时的堆栈信息。那么Golang程序如何在崩溃后生成core文件呢?答案就是GOTRACEBACK这个环境变量。

       关于GOTRACEBACK环境变量的详细说明,可以参考官方文档在runtime一节的链接,这里仅列出文档中较为核心的说明如下(Golang版本为1.6)。根据文档的说明我们可以知道GOTRACEBACK的可选值为:none、single、all、system和crash,其中关于crash的说明就指出了在Unix系
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
       为了能够重用已有的C语言库,我们在使用Golang开发项目或系统的时候难免会遇到Go和C语言混合编程,这时很多人都会选择使用cgo。话说cgo这个东西可算得上是让人又爱又恨,好处在于它可以让你快速重用已有的C语言库,无需再用Golang重造一遍轮子,而坏处就在于它会在一定程度上削弱你的系统性能。关于cgo的种种劣迹,Dave Cheney大神在他的博客上有一篇专门的文章《cgo is not Go》,感兴趣的同学可以看一看。但话说回来,有时候为了快速开发满足项目需求,使用cgo也实在是不得已而为之。

       在Golang中使用cgo调用C库的时候,如果需要引用很多不同的第三方库,那么使用#cgo CFLAGS:和#cgo LDFLAGS:的方式会引入很多行代码。首先这会导致代码很丑陋,最重要的是如果引用的不是标准库,头文件路径和库文件路径写死的话就会很麻烦。一旦第三方库的安装路径变化了,Golang的代码也要跟着变化,所以使用p
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
       在前面的三篇博文中,我们介绍了Kurento中OpenCV类型模块的开发方法,本篇会分享本博主在开发OpenCV模块中遇到的一个关于图片通道的问题以及解决方法。首先来说明下这个问题是如何遇到的,在最近的项目开发中从事计算机视觉处理的同事写了一个类似于虚拟现实的工具库,在将该工具库接入到Kurento的OpenCV模块时,发现处理后的图像(如下图所示)不仅没有出现想要的效果,反而变得根本没法供人类看了。


       后来到Kurento的Google论坛上问了问才恍然大悟:通过kurento-module-scaffold.sh工具创建的OpenCV模
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
      在前面的两篇博文中,我们介绍了Kurento中Opencv类型模块的开发方法并实现了一个简单的边缘检测模块。回顾之前的代码,我们在OpencvPluginSampleOpenCVImpl这个类中定义了两个私有成员变量:filterType和edgeValue,其中filterType为0时执行边缘检测,而edgeValue则是Canny算法中用于控制边缘连接的小阈值。在之前的代码中,我们直接在OpencvPluginSampleOpenCVImpl的构造函数中设置这两个成员的默认值,是写死在代码中的。那么问题来了,有的人可能希望在配置文件中设置这两个参数的默认值以便更灵活地控制模块,这该如何实现呢?在本篇博文中我们更进一步,来看看如果通过配置文件的方式对自定义模块进行参数配置。

      在介绍实现方式之前,我们不妨先看一看Kurento内置的模块是如何实现参数配置的。Kurento模块的配置文件默认存储在/etc/kurento/modules这个目录下,在Kurento安装完成后就会有一个名为kurento的子目录,该子目录下存
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
     在前一篇博文中我们大致了解了如何开发一个简单的OpenCV模块并加载到KMS中,走到这一步只能说Kurento服务器端具备了新增模块的能力,但是客户端无法使用该模块的能力,因为没有为该模块提供操作接口,所以我们还要为新增模块生成相应的客户端接口。Kurento目前支持两种语言的客户端接口:Java和JavaScript,以下我们以JavaScript为例来说如何生成客户端接口并验证新增模块的处理效果。

      首先,生成JavaScript客户端接口。在
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
    Kurento Media Server(KMS)本身被设计为一个可插拔框架,KMS默认使用的模块只有三个:kms-core、kms-elements和kms-filters。此外,Kurento还内置了几个用于能力增强的模块:kms-crowddetector,kms-chroma,kms-platedetector和kms-pointerdector。除了以上内置的模块,KMS允许用户自定义模块并插入到系统框架中。目前支持的模块类型分为两种:OpenCV模块和Gstreamer模块,前者可用于开发计算机视觉相关的过滤器,而后者能力更强但开发难度也更大,需要对Gstreamer多媒体开发框架比较熟悉。为了方便开发者,Kurento提供了自定义模块开发工具,可以协助开发者自动生成模块的核心框架代码,开发者只需关注于自身逻辑的代码实现即可。

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

mongodb

分类: 开卷有益宁滥勿缺
       最近利用周末时间上完了MongoDB University的DBA高级课程,课堂作业和最终考试通过,还给发了个证书。应该说这个课程还是不错的,比较适合入门之后希望更进一步的Mongo DBA。另外,通过这门课程的学习发现《MongoDB权威指南》第2版真是一本好书啊!之前看过一遍没有这种感觉,结合MongoDB University的课程又看了一遍,发现好多之前忽略的“秘籍”,搞得自己准备要看第三遍了,强烈推荐!
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

引言

在历经版本号修改(2.8版本直接跳到3.0版本)和11个rc版本之后,MongoDB 3.0于2015年3月3日正式发布。可以毫不夸张的说,该版本的新增特性标志着

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有