09
2013
04

Eclipse Python插件 PyDev

 

方法一:  

将plugins目录下所有文件挪到Eclipse的相应目录下,将feature目录下所有文件挪到Eclipse的相应目录下,最后启动Eclipse,在Help-》Software Upates-》Manage Configuration,然后弹出的界面即可看到pydev的插件。

在安装 PyDev 之前,要保证您已经安装了 Java 1.4 或更高版本、Eclipse 以及 Python。接下来,开始安装 PyDev 插件。

  1. 启动 Eclipse,利用 Eclipse Update Manager 安装 PyDev。在 Eclipse 菜单栏中找到 Help栏,选择 Help > Software Updates > Find and Install。
  1. 选择 Search for new features for install,然后单击 Next。在显示的窗口中,选择 new remote site。此时,会弹出一个对话框,要求输入新的更新站点的名称和链接。这里,名称项输入 PyDev,当然,您也可以输入其他的名称;链接里输入http://pydev.org/updates。然后,单击 Ok。

 

16
2013
03

CentOS安装scp命令

 在测试中需要在两台虚拟机之间传递文件,首先想到的是scp命令,结果提示:

-bash: scp: command not found

想当然用yum install scp命令安装,结果提示:

No package scp available.

后来发现scp这东西应该属于openssh-clients这个包,运行:

yum install openssh-clients

再运行scp就可以了

13
2013
03

[转]用C/C++扩展你的PHP

PHP取得成功的一个主要原因之一是她拥有大量的可用扩展。web开发者无论有何种需求,这种需求最有可能在PHP发行包里找到。PHP发行包包括支持各种数据库,图形文件格式,压缩,XML技术扩展在内的许多扩展。

扩展API的引入使PHP3取得了巨大的进展,扩展API机制使PHP开发社区很容易的开发出几十种扩展。现在,两个版本过去了,API仍然和PHP3时的非常相似。扩展主要的思想是:尽可能的从扩展编写者那里隐藏PHP的内部机制和脚本引擎本身,仅仅需要开发者熟悉API。

有两个理由需要自己编写PHP扩展。第一个理由是:PHP需要支持一项她还未支持的技术。这通常包括包裹一些现成的C函数库,以便提供PHP接口。例如,如果一个叫FooBase的数据库已推出市场,你需要建立一个PHP扩展帮助你从PHP里调用FooBase的C函数库。这个工作可能仅由一个人完成,然后被整个PHP社区共享(如果你愿意的话)。第二个不是很普遍的理由是:你需要从性能或功能的原因考虑来编写一些商业逻辑。

27
2013
02

彻底搞定C指针

 

 《彻底搞定C指针》第一篇 变量的内存实质


要理解C指针,我认为一定要理解C中“变量”的存储实质,所以我就从“变量”这个东西开始讲起吧!
先来理解理解内存空间吧!请看下图:

内存地址→ 6 7 8 9 10 11 12 13
----------------------------------------------------------------- 
··· | | | | | | | |··
-----------------------------------------------------------------

如图所示,内存只不过是一个存放数据的空间,就好像我的看电影时的电影院中的座位一样。每个座位都要编号,我们的内存要存放各种各样的数 据,当然我们要知道我们的这些数据存放在什么位置吧!所以内存也要象座位一样进行编号了,这就是我们所说的内存编址。座位可以是按一个座位一个号码的从一 号开始编号,内存则是按一个字节一个字节进行编址,如上图所示。每个字节都有个编号,我们称之为内存地址。好了,我说了这么多,现在你能理解内存空间这个 概念吗?

 

21
2012
12

将centos6的curl ssl版本(NSS)替换成openssl,解决Unable to load client key -8178的错误问题

在centos 6.2的系统里面的curl支持的https是nss版本的,而不是openssl的,所以在php使用curl访问https的时候会报Unable to load client key -8178的错误,在google group里面找到了灵感,也是curl和https的,里面说倒是curl的问题:
https://groups.google.com/forum/?fromgroups=#!topic/pongba/sgMYM9dGI7k


根据链接里面说的,去官网下载了一个最新版本(curl-7.28.1.tar.gz)的curl,来进行源码编译...

21
2012
12

解决PHP使用CURL请求时返回http/1.1 100 continue的方法

在使用curl做POST的时候, 当要POST的数据大于1024字节的时候, curl并不会直接就发起POST请求, 而是会分为俩步,

  1. 发送一个请求, 包含一个Expect:100-continue, 询问Server使用愿意接受数据
  2. 接收到Server返回的100-continue应答以后, 才把数据POST给Server
  

这是libcurl的行为.

具体的RFC相关描述: http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3

于是,这样就有了一个问题, 并不是所有的Server都会正确应答100-continue, 比如lighttpd, 就会返回417 “Expectation Failed”, 则会造成逻辑出错,,

要解决的办法也挺容易:

 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
               // Disable Expect: header (lighttpd does not support it)

 

17
2012
11

524373.com网站建议征集专用

本文为建议征集专用。

乐民,或许有很多人都没听说过这个地名。但是,我们是在那里长大的。一直在想着,能否为自己出生的地方做点什么呢?

我现在能想到的,就是让更多人来了解乐民这个革命老区。

所以,我决定为乐民做一个网站!

 各位乐民的老乡、同学、朋友们,你们希望未来这...

06
2012
11

快速构建实时抓取集群[searchtb]

定义:
首先,我们定义一下定向抓取,定向抓取是一种特定的抓取需求,目标站点是已知的,站点的页面是已知的。本文的介绍里面,主要是侧重于如何快速构建一个实时的抓取系统,并不包含通用意义上的比如链接分析,站点发现等等特性。

在本文提到的实例系统里面,主要用到 linux+mysql+redis+django+scrapy+webkit,其中scrapy+webkit作为抓取端,redis作为链接库存 储,mysql作为网页信息存储,django作为爬虫管理界面,快速实现分布式抓取系统的原型。

名词解析:

1.  抓取环:抓取环指的是spider在存储中获取url,从互联网上下载网页,然后将网页存储到数据库里面,最后在从存储里面获取下一个URL的一个流程。
2.  Linkbase:链接库的存储模块,包含一般的链接信息;是抓取系统的核心,使用redis存储。
3.  XPATH:一门在 XML 文档中查找信息的语言,XPath 可用来在 XML 文档中对元素和属性进行遍历, 是 W3C XSLT 标准的主要元素。使用XPATH以及相关工具lib进行链接抽取和信息抽取。
4.  XPathOnClick:一个chrome的插件,支持点击页面元素,获取XPATH路径,用于编辑配置模板。
5.  Redis:一个开源的KV的内存数据库,具备很好的数据结构的特征和很高的存取性能。用于存储linkbase信息
6.  Django:爬虫管理工具,用于模板配置,系统监控反馈。Django在这里主要是用来管理一个数据库,使用Admin功能。
7.   Pagebase:页面库,主要是存储网页抓取的结果,以及页面抽取的结果,和dump交互,使用mysql实现。
8.    Scrapy:一个开源的机遇twisted框架的python的单机爬虫,该爬虫实际上包含大多数网页抓取的工具包,用于爬虫下载端以及抽取端。
9.     列表页:指的商品页面之外的所有页面
10.    详情页:比如商品B2C的抓取中,特指商品页面,比如

29
2012
09

安装Tokyo cabinet时提示configure: error: bzlib.h is required的解决方法

wget http://httpsqs.googlecode.com/files/tokyocabinet-1.4.47.tar.gz
tar zxvf tokyocabinet-1.4.47.tar.gz
cd tokyocabinet-1.4.47/
./configure --prefix=/usr/local/tokyocabinet-1.4.47/
#注:在32位Linux操作系统上编译Tokyo cabinet,请使用./configure --enable-off64代替./configure,可以使数据库文件突破2GB的限制。
#./configure --enable-off64 --prefix=/usr/local/tokyocabinet-1.4.47/
make
make install
cd ../

...

12
2012
09

几款网页制作必备的Firefox插件

Firefox是非IE内核浏览器的领头羊,而且近几年使用人群迅速增长,大有追赶IE的趋势。问及Firefox受欢迎的原因,多半都是因为它可以添加多种网页开发插件的优点。

下面我介绍几款常用的网页开发的常用插件: