分类目录归档:我的分享

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

继续阅读

CentOS7上MySQL返回Too many connections

被这个问题困扰了一天,今天做微信开发,流量一大,django占用CPU很大,这个比较好解决,加进程加硬件即可。然而数据库连接开始报Too many connections,查了网上一些文章,直接改/etc/my.cnf加入max-connections=3000,无果。又查,在mysql里输入set GLOBAL max-connections=3000,数值是变了,然并卵。

刚才找到一个文章,才想起原来是CentOS7的systemd限制了服务进程的NOFILE,导致每次启动mysql服务后,查询max-connections一直是214,这个数字可能是默认的最大值吧。解决方法如下:

编辑 /usr/lib/systemd/system/mysqld.service,加入:
LimitNOFILE=infinity
LimitMEMLOCK=infinity

困扰整天的问题终于解决,撰文记下。

参考文献:

http://www.nethings.eu/quick-picks/mysql-max-connections/

Windows上最小的Python运行环境,700KB

之前还没有编译过Windows上的Python,打包发布一般使用py2exe和pyinstaller,生成的文件至少有3MB。而且Python只有VS的Project文件,也就是说,如果自己要用GCC来编译,就需要自己编写或者修改Makefile了。我是在Debian上安装了Mingw32之后,修改默认的Makefile来让它支持编译成Windows版本,而且源代码有大幅度改动,所以这里就不把过程写出来了,我也忘了做了多少修改。编译方法可以参考我的上一篇博文。建议有VS的同学还是选择VS编译比较方便,不用改动那么多。

python23

继续阅读

HTTPS与SNI扩展,一个IP多个证书

在搭建支持HTTPS的前端代理服务器时候,通常会遇到让人头痛的证书问题。根据HTTPS的工作原理,浏览器在访问一个HTTPS站点时,先与服务器建立SSL连接,建立连接的第一步就是请求服务器的证书。而服务器在发送证书的时候,是不知道浏览器访问的是哪个域名的,所以不能根据不同域名发送不同的证书。用过GoAgent的人都知道需要给浏览器导入证书才能使用HTTPS正常登录Twitter等网站。

SNI(Server Name Indication)是为了解决一个服务器使用多个域名和证书的SSL/TLS扩展。一句话简述它的工作原理就是,在连接到服务器建立SSL连接之前先发送要访问站点的域名(Hostname),这样服务器根据这个域名返回一个合适的证书。目前,大多数操作系统和浏览器都已经很好地支持SNI扩展,OpenSSL 0.9.8已经内置这一功能,据说新版的nginx也支持SNI。


继续阅读

Python与简单网络爬虫的编写

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

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

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

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

继续阅读

我常用的Vim和Bash的配置

经常切换到新环境下工作,例如VPS变更了,电脑换了,OS换了等。无论是哪个发行版的Linux,还是哪个版本的OSX或BSD,只需要配置一下Bash和Vim这两个使用最频繁的工具就OK。听说“天然呆小萌兔”去了Google,难怪最近一直那么萌的了,她说她的部门只有一个人用Emacs,Vim还是目前主流。公司给她配了一个Macbook和一个Linux PC,这么爽我也不想在学校里呆了……


继续阅读

Python与OpenCV人脸检测

因为这个学期学习的Pattern Recognition需要做一个Lab实验,而我所在的小组的题目是人脸识别。我想参与做的工作是人脸检测定位,然后提取特征。

为了减少工作量,尽量采用现成的技术和现有的库,例如OpenCV。最容易实现而且已经被广泛实践的就是人脸的定位了,使用过google plus或者facebook的人都知道,在浏览相片的时候,能够自动识别人脸并且提示圈人。目前发现新浪微博的相册还无此自动识别功能,只有手动寻找位置……

人脸检测效果如下:

继续阅读