原创 [gevent源碼分析] libev cython綁定core.pyx

gevent core就是封裝了libev,使用了cython的語法,感興趣童鞋可以好好研究研究。其實libev是有python的封裝pyev(https://pythonhosted.org/pyev/),不過pyev是使用C來寫擴展的

原创 Python之美[從菜鳥到高手]--NotImplemented小析

今天寫代碼時無意碰到NotImplemented,我一愣,難道是NotImplementedError的胞弟,所以稍微研究了一下。NotImplemented故名思議,就是“未實現”,一般是用在一些比較算法中的,如class的__eq__

原创 gevent: AssertionError: Impossible to call blocking function in the event loop callback

今天在用爬蟲時gevent報了AssertionError: Impossible to call blocking function in the event loop callback異常,很奇怪,難道是patch_socket惹的

原创 sklearn2pmml xgboost缺失值(missing)處理的坑

sklearn2pmml xgboost缺失值(missing)處理的坑 今天同事在部署xgboost pmml模型時遇到了大坑,線上spark預測和本地python預測結果怎麼都不對應,記錄一下處理過程。 看了下同事的代碼,貌似

原创 微信支付SDK(python版)

最近一段時間一直在搞微信平臺開發,最近的v3.37版本微信支付接口變化賊大,所以就看着php的demo移植爲python版,爲了保持一致,所以接口方法基本都沒有變,這樣的好處就是不用寫demo了,看着微信官方的demo照葫蘆畫瓢就可以了。

原创 [Python網絡編程]gevent httpclient以及網頁編碼

之前看到geventhttpclient這個項目,https://github.com/gwik/geventhttpclient,官方文檔說非常快,由於響應使用了C的解析,所以我一直想把這玩意用到項目中,這兩天一直在糾結這玩意,說實在一

原创 [gevent源碼分析] gevent兩架馬車-libev和greenlet

本篇將討論gevent的兩架馬車-libev和greenlet如何協同工作的。gevent事件驅動底層使用了libev,我們先看看如何單獨使用gevent中的事件循環。#coding=utf8 import socket import g

原创 Python之美[從菜鳥到高手]--2+2=5

    今天在伯樂在線上看到一篇比較有意思的文章:趣味挑戰:寫一個 2 + 2 = 5 的程序 ,python版代碼如下:patch = '\x312\x2D7' import ctypes;ctypes.c_int8.from_addr

原创 [gevent源碼分析] c-ares異步DNS請求

c-ares是異步DNS請求庫,libcurl,libevent,wireshark都使用了c-ares,gevent1.0版本前使用的是libevent,所以它的DNS請求也是使用c-ares,1.0版本後使用cython封裝了c-a

原创 [Python網絡編程]淺析守護進程後臺任務的設計與實現

    在做基於B/S應用中,經常有需要後臺運行任務的需求,最簡單比如發送郵件。在一些如防火牆,WAF等項目中,前臺只是爲了展示內容與各種參數配置,後臺守護進程纔是重頭戲。所以在防火牆配置頁面中可能會經常看到調用cgi,但真正做事的一般並

原创 tornado模板源碼小析

最近對flask的熱情有點下降,對tornado有點高漲。 之前在知乎上回答過一個問題,如何理解 Tornado ?,我的回答如下:1.高性能的網絡庫,這可以和gevent,twisted,libevent等做對。提供了異步io支持,超時

原创 ZeroMq LRU算法中間件

前一段時間2014北京PyCon大會吐槽頗多,所以我就到InfoQ上找了找2013的大會視頻,對網絡射擊手遊High Noon 2基於Python的服務器架構的視頻挺感興趣,尤其是遊戲服務器中的0 downtime,原理他們底層不是原生的

原创 Python之美[從菜鳥到高手]--threading daemon線程原理解讀

事情的起因是我在看下面一段代碼遇到的疑惑,明明是while True,爲什麼代碼沒有死循環??class D(threading.Thread): def __init__(self, queue): threa

原创 Apache Druid源碼導讀--Google guice DI框架

文章目錄緣起Google Guice介紹與Spring的對比Example覆蓋已有綁定關係默認綁定Apache Druid中Guice模塊guice-lifecycleguice-jsonconfigguice-jersey-je

原创 Jackson多態反序列化的使用

緣起 最近看Apache Druid的源代碼(0.5很老的版本),印象最深的就是對Jackson的多態反序列化和注入的使用了,這裏也屬於自己的知識盲點,看着複雜的json直接反序列化爲可用對象,直呼過癮。所以一直想找個機會實踐一下