凡事下手要早,占个茅坑不拉屎也是好习惯

缘起在v2ex上看到一个帖子「现在全民微信,对现在的微信热,你们怎么看?」,帖子的楼主对于「要做还是不要做」的事情和我一样,经常会先预估一下这个事情是否合理,至少在自己的观点来看这个事情是否「有存在的必要」。即便是已经存在的也要套上自己的经验来想象一下这个事是否「靠谱」。我的观点空穴来风不是说来玩玩的,即便微信这个东西未来不能继续火或者甚至会因为一些可能的政策之类问题这个产品无法继续下去或者设置了很高的门槛,但大家都在一拥而上的东西只要你也跟进,起码能有一小波流量流到你这边。所以,从众一下并不是什么很丢人或者不靠谱的事情。我的一些经历QQ号。上学时候老师就讲过一个没日没夜申请短的联众号码的故事……sp。替某一个小公司做SP的时候,那屁大的公司年利润几千万,等我反应过来时候……支付宝即时到帐接口。知道这事时候还很早,申请的时候看了一下太麻烦加上自己当时没有搞电商的计划。然后现在申请门槛提高了...

精彩继续

解决Python自带的json序列化工具不能序列化datetime类型数据问题

Python自带的json.dumps方法序列化数据时候如果格式化的数据中有datetime类型数据时候会提示错误TypeError:datetime.datetime(2012,12,12,15,47,15)isnotJSONserializable搜索出来的解决方案基本都是用Django的DjangoJSONEncoder来解决,为了一个简单的办法引入Django这个大家伙实在有点不知所谓。不过这一点就体现了Django的资料多的优势了正在下决心是否干脆下载了Django的代码去翻出DjangoJSONEncoder这个方法来的时候看到了官方文档中关于json.dumps方法的一个参数(cls)说明:TouseacustomJSONEncodersubclass(e.g.onethatoverridesthedefault()methodtoserializeadditionaltyp...

精彩继续

微信公共平台api Python(bottle)版

微信这个东西估计宅男没几个不熟悉的吧,微信经过这么两年多的发展终于向开放平台跨出了友好的一步。蛋疼的以为微信会出一个详细的api等接口,兴奋不已的去申请了微信公共平台,然后开始找各种api的位置……花费了近一个小时,依然没找到……最后动用Google大杀器,终于找到了这么个链接。我了个去的,没比这还简单的api文档了吧。最让人无法理解的是:居然没有本地开发环境支持,每次都要放在生产环境去调试。最让人欣慰的是:就那么俩方法,生产环境调试几次也就完事了。Python(bottle)版代码如下:#-*-coding:utf-8-*-frombottleimportdebug,default_app,run,get,request,postimportsys,os,time,libxml2dom@get('/')defindex():returnrequest.GET.get('echostr')...

精彩继续

利用百度站长平台,快速解决百度不收录和拔毛问题

百度升级了各种算法之后造成了大量的误杀,然后使用了一个「人肉」处理的办法,就是:你来站长平台投诉提ticket投诉,我人肉处理。测试利用此方式解决百度拔毛和不收录非常有效而且效率非常高。站长平台投诉这个不知道是什么时候推出的业务了,以前只使用过「网页投诉」来解决博客快照不更新的问题。而且网页投诉虽然效率也不错,但即便解决了也不会随时更新投诉的状态等。感觉就是一些兼职的客服在随手处理一下其中的问题,没有投入很大的人力在这上边。而最近因为百度算法几次升级误杀了大量的网站,估计百度的客服部门压力也比较大,应该有组织专门的小组来负责站长误杀相关投诉,所以可以看到站长平台投诉的处理效率非常之高。看这个站长平台的投诉:一天内有答复再看网页投诉:几个月还是处理中站长平台投诉后很快就收录了

精彩继续

Google站点全线被墙,你们在害怕什么?

距离11月某国内重大会议快开始的几天开始公司的网络就开始三分钟一小短,五分钟一大断。而此种情况经在北京的一些同事反映,很多公司均有类似问题。tracert显示是在电信某些节点丢包,而并非是公司路由或者wifi问题。且在v2ex提问的时候也有相当一部分人反映均是差不多的情况,由此可见并非我碰到的个例,而是非常普遍的情况。结合一些小道消息「十八大结束之前,网络出现各种问题均不予解决」,所以询问公司IT均表示无法解决。这一周开始公司换了线路,断网的情况开始有所缓解。但是从今天开始,更为恶劣的事情出现了:*.google.com全部站点DNS均被污染!访问任何一个Google的域名均会被解析到59.24.3.173这个莫须有的韩国IP上,而此IP是无法访问的。污染的手段和之前高墙污染encrypted.google.com的手段如出一辙,甚至污染DNS后解析出来的IP都是一模一样的。在这个互联网越...

精彩继续

varnish3.x清除缓存方法

首先吐槽一下varnish文档的匮乏,不管中文还是英文文档都比nginx之流少的可怜。而且尤其是2.x和3.x版本语法各种不一样,网上中文的文档基本都是从张宴的使用Varnish代替Squid做网站缓存加速器的详细解决方案[原创]文章上衍生或者甚至只是复制过去的。vainish2.x版本都是通过varnishadm-T127.0.0.1:3500url.purgew*$方式清空缓存,而且张宴的文章中没有提及auth验证的问题。当然因为张宴的文章中并没有任何引入-S这个参数,所以也就无需做任何验证即可清除缓存。而我上篇文章中的启动参数是有使用-S/etc/varnish/secret这个参数的。所以在清空缓存时候也需要指定此参数。如果清除缓存时候不指定此参数varnish会提示Authenticationrequired。这个提示Google了一下午才找到原因所在。所以最终我的清除缓存的命令...

精彩继续

自动识别网站友情链接,并自动识别网站RSS地址

起因:GoogleReader订阅的Blog中有人推荐了一篇通过友情链接进行博客Feed的搜集,你的博客收录了吗,文章作者并没有给出完整的代码,只给出了识别友情链接所在区域的算法,而且看样子该博主也不大计划提供了。所以:算法有了,完整代码还远么:D最终:用不到120行的代码就把完整识别友情链接&&获取网站RSS地址的代码全部实现了,当然核心算法还是用的上边提到的那个文章中的算法。完整代码:#-*-coding:utf-8-*-importlibxml2dom,sys,requestsreload(sys)sys.setdefaultencoding('utf-8')defaffect(points,keep_ratio,ratio,power):keep=points*keep_ratioifratio>=1.:returnpointsreturnkeep+(points-...

精彩继续

使用varnish取代nginx反代功能

作为一个工具控最手贱的就是更换各种工具,更新一次工具就要熟悉半天。从Arch换到debian本意是为了环境能稳定一些且少一些折腾,终于熟悉了debian之后就开始折腾各种软件,尝试了使用apt-get搭建环境发现很多不舒服的地方,然后用了一天时间又折腾回编译版本的环境。昨天编译完软件,拾起了很早之前放在收藏夹的一些varnish资料翻了一下,和现在用的nginx反代前端比较下了,没去管那么多的跑分、测评,只是感觉了varnish的一些灵活和强大,然后再一次「中毒」……在某一台vps上安装了varnish2.x版本后,网上搜到的vcl的写法有点不舒服,用了一下根据varnish官方的建议安装了3.x。2.x的vcl文件见https://gist.github.com/3992376升级成3.x后……坑爹的原2.x的vcl文件不能用了…继续Google,找到一个写的还算清晰的3.x的vcl,简...

精彩继续

Debian下配置samba和Windows7共享

虽然在博客写的最多的是php和python的东西,但实际上俺真心是一个.NET程序员,而且是平时接触不到inx环境的纯粹WIN平台程序员。所以一个inx最基本的操作对我来说都可能需要花费一定时间去Google去摸索。因为无法将电脑环境完全替换成Linux,所以为了调试一段小脚本特意装了一个最小环境(我能做到的最小环境)的Debian在虚拟机里。又因为实在记不住繁多的vi快捷键,虽然用过一段时间个gvim在WIN上,但依然还是降伏不了这个「神器」。所以,写脚本还是在WIN平台使用SublimeText2编辑器写好之后放在虚拟机去执行。之前虽然知道samba这个东东,但实在是没自己亲手动手实践过(因为vps也用不到这个东西),翻了一下在我的myBaseDesktop中不知道什么时候记录过一篇关于samba配置的文章。按照这篇文章实际操作了下居然小小成功了……实际操作步骤如下:apt-getin...

精彩继续

Python从txt文件中读取黑词并简单匹配字符串

下班前同事收到一封邮件说客户在系统中发送短信时候提示有黑词,但因为sp并没有指出具体是冒犯了哪个黑词。找负责短信接口的同事要了一个黑词列表,里边有上千行的黑词,因为着急下班回家,想到处理这些小问题还是得Python这些小脚本出马。先将黑词列表文件存成utf-8格式「个人爱好,非必须步骤」在编辑器中写入如下代码:#-*-coding:utf-8-*-importsysreload(sys)sys.setdefaultencoding('utf-8')f=open('test.txt','rb')foriinf:ifiinu"短信内容":printi.decode('utf-8')但是事实和想象不同的是,内容基本没有匹配出来……然后各种检查:for循环中输出判断某一个黑词是否=='黑词',结果居然不等以为是各种编码问题,开始保存成gbk,来回转换编码……无果抽风输出了for循环中每行字符的长度...

精彩继续