分类目录归档:我的代码

Python里使用zbar识别二维码

今天研究数据库里的微信群二维码图片,很多人上传的图片并不是正确的群二维码,而是个人微信、公众号或者是一个手机充值流量的入口。为了把这些不合格的二维码挑选出来,只能一个个识别了。找了网上一些接口的,测试了一下不但限制频率为一秒2个,还很多识别不出来,看报错用的是zxing这个库,最后只能想其他方法。

在CentOS7上安装了zbar,没有找到el7的rpm,只好自己编译。研究出编译时使用一些参数可以避免安装一些不必要的包。为了virtualenv里的python能用,编译时候要指定安装到/usr。

编译文件不多,一下就完了。步骤如下:

./configure –disable-video –without-qt –without-gtk –without-x –prefix=/usr
make
sudo make install

继续阅读

Python与简单网络爬虫的编写

电影来了这个电影资源搜索网站火起来了,曾有一段时间因为太多人访问我的博客,访问量高于平常十多倍,Apache、PHP和MySQL这三个庞大的东西搭建的庞大的wordpress博客就直接挂掉了,直接挂掉了,挂掉了,了。。。

从上一篇博文的评论中看出似乎很多同学都比较关注爬虫的源代码。我也给大家回复,当时写的文件比较乱,爬虫文件也很多,没时间整理,所以就直接发技术博文来说一下我个人对爬虫的研究收获。所以嘛,也就注定了我这篇文章只能跟爬虫相关了。

我第一次接触爬虫这东西是在今年的5月份,当时写了一个博客搜索引擎,所用到的爬虫也挺智能的,起码比电影来了这个站用到的爬虫水平高多了!

当时的文章链接: 通过友情链接进行博客Feed的搜集,你的博客收录了吗

继续阅读

Software Engineering Homework

虽然放假了,但最近的时间都用在做作业和做实验上了。第一次用Qt4 Creator开发一个软件,靠自己胡乱摸索,稍微了解了一下工作原理。这IDE似乎比VS那个还要强大,面向对象的编程方法,所有地方只打”.”就能自动识别和转换成”->”,比Codelite方便和稳定很多。Qt4的类库也很强大,QString,QList比STL的string,vector功能多很多,用起来效率也很高。在@__kd__ 的同学介绍下,才知道还有mapper等实用的功能,不过还没用上,Qt4的MVC界面设计也没用上,下次再试试,哈哈!

继续阅读

Socket Programming Homework

Design:

The software consists of two parts. The server program and the client program. The server program
is simply a command line application that receives only one argument to specify the directory the file
server hosts. And the client program is written in Qt4 GUI framework, so a friendly visual user
interface is shown to the user.

Functions:

1. Listing directories from server.
2. Downloading files from server. Large files (4GB) are supported.
3. Multi-clients access and multi-threading supported.
4. Uses maximum network speed, nearly 50Mbytes/s transfer ability on PC.
5. The cross-platform Qt4 GUI supported.
6. Current version only support two basic FTP commands(LIST, RETR) for file listing and file
transferring. To simplify the development, the implementation of these commands is not
compatible with the RFC related specificiations.
继续阅读

通过友情链接进行博客Feed的搜集,你的博客收录了吗

很久没有发一些有技术含量的文章了,最近发博文都有一种应付式的感觉,真对不起自己。感觉有时候是我沉醉于一样东西太长时间了,把我正常的生活节奏都打乱了,而却没有注意到这样子反而效率很低下。适时抽时间出来总结一下是蛮重要的!所以,以后决定每天都抽一个小时出来自我总结,觉得有所感想就写下来,有技术研究的,就给大家分享一下吧!

这两天在写下面的一个东西,用来搜集博客种子(Feed)的RSS或者Atom地址的。没有种子的博客不会被收录进来。因为只有Feed才对我有用!

网站地址:http://feed.readself.com/

继续阅读

写了个Python脚本监控nginx进程

接上一文用iptables让SSH服务对陌生人说不。还是有点担心这个学期内,nginx可能会因为系统各种原因而出现异常退出,导致Web服务暂停。所以,又来了一个方案。

#!/usr/bin/env python
import os, sys, time

while True:
    time.sleep(3)
    try:
        ret = os.popen('ps -C nginx -o pid,cmd').readlines()
        if len(ret) < 2:
            print "nginx process killed, restarting service in 3 seconds."
            time.sleep(3)
            os.system("service nginx restart")
    except:
        print "Error", sys.exc_info()[1]

设置文件可执行属性,加入到/etc/rc.local,总算放心了。
这种方法还可以监控别的进程,我相信应该有现成的监控软件,但是我觉得写个脚本更方便。

玩玩Tornado,写了一个网络相册分享照片

Tornado是一个用python写的小巧的开源网站服务器。安装来玩了一下,的确很强大,响应速度很快!这东西是Facebook开发的,但奇怪的是官网 http://www.tornadoweb.org/ 的IP查出来却是Google的呢,难怪连华工的校园网也能连上了。

花了一晚时间,写了如下的一个Web相册,用来分享照片给同学 🙂 可见开发效率之高,o(∩∩)o…哈哈,代码量也很少。

界面简简单单的,功能挺实用。
继续阅读

转换M8的XML通讯录为通用的VCard(VCF)格式

自从2011年某月某日,在广州大学城的公交上丢了手机之后,就一直用者同学的旧手机。过年后,钱够了,就打算买手机!于是,把以前M8的通讯录转换为Android可以导入的VCF文件。

Android2.3使用的VCard版本为3.0,我导出了一个样例用于分析:

BEGIN:VCARD
VERSION:3.0
N:黄;小虾;;;
FN:黄小虾
TEL;TYPE=CELL:13800138000
TEL;TYPE=WORK:02010086
EMAIL;TYPE=WORK:[email protected]
ADR;TYPE=WORK;CHARSET=UTF-8:;;c12-151;广州;广东;510006;
URL:xiaoxia.org
PHOTO;ENCODING=B;TYPE=PNG:iVBOR(… 此处省略编码后的图片数据)CYII=
X-QQ:10000
END:VCARD

继续阅读