你好,2016!

Roy
从13年开始写博客,居然已经过了整整3年,自己都没想到能坚持这么久。虽然有些时候一个月只写一篇,但都是自己原创或者翻译的,也是对自己成长记录。按照以往的惯例,这篇文章应该是发布在1月1日的,但今年我竟然稀里糊涂的把这事记错了,以为农历新年时才写总结…… 一句话形容2015:平凡而又充实的一年。 全年共阅读21本书,体重也终于上升到了59kg左右,至于收益率的目标……遇到了千股跌停的奇观基本也就达成一半。购物的、娱乐的倒是全部完成了,锻炼又是练练就断了,记账坚持的不错,如果每月能有点结余就更好了,真是收入多了支出也多了。 剩下的……嗯,把2015年目标改成2016年吧…… 2015年最有成就感的: 自驾去海边,走的沿海山路,各种急弯各种坡路啊!以前坐车的时候感觉在山路上看海好美,可自己开车时候根本没办法去欣赏唉…… 新的数据中心、计算中心、网站上线,其中各种曲折就不说了。 2015年最难过的:

flask-socketio中文文档

Roy

官网在这里,英语好的直接去看官网文档吧,我是英语渣只能翻译个大概;另外注意本文翻译时间,可能你看到的时候官网已经更新了。


flask-socketio赋予了flask程序支持服务端和客户端间双向低延迟通讯的能力,客户端可以使用 SocketIO 库或任何支持与服务端建立长链接的兼容库。

安装

可以直接使用pip安装:

pip install flask-socketio

依赖

自从1.0版开始,这个扩展完全兼容了python2.7和python3.3+版本。异步服务的支持基于下面3个选择中的一个:

  • eventlet 是3个选项中性能最高的,同时支持长轮循(long-polling)和WebSocket。
  • gevent 是在以前版本中使用的框架,支持长轮循,如果想支持WebSocket的话需要同时安装gevent-websocket 库。使用gevent和gevent-websocket结合性能也不错,但略低于eventlet。
  • flask 基于Werkzeug的开发服务也能用,不过性能上不如上面2个选项,所以它应该只用于开发时使用。这个选项只支持长轮循。 本扩展将自动检测哪些异步框架被安装,默认首选eventlet,其次是gevent,最后是flask自带的开发服务。 对于客户端来说,可以使用官方的Socket.Io来建立于服务端的链接,也有使用swift和c++写成的客户端。非官方的客户端也能工作,只要它实现了Socket.IO 协议。

目前的局限

目前flask-socketio只能同时运行在单个进程中(这里应该指的是一个进程中仅能存在一个实例的意思,而非只能开启一个进程吧…),解决这个限制的工作正在进行中。 (关于升级变化、以及从老版本迁移到新版的注意事项我就不翻译了,因为没用过老版本)

centos7安装Metasploit框架

Roy
Metasploit应该不用多说了吧?Kali自带、Win和Mac都提供了现成的安装包,不过我莫名的对apt系不感冒,这里记录一下在centos7上安装metasploit框架的步骤,理论上yum系的都应该通用。 首先执行 curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall chmod 755 msfinstall ./msfinstall 然后安装postgresql:

python脚本模拟tail命令

Roy
今天有个需求,需要实时监控nginx日志中某些ip的访问情况。如果ip较少的话,直接使用tail、grep以及管道配合即可。不过需要监控100个左右的ip并进行相应处理的话,除了自己写脚本还真没想到别的办法。 首先引出Python中自带的2个函数: file.seek(off, whence=0) 从文件中移动off个操作标记(文件指针),正往结束方向移动,负往开始方向移动。如果设定了whence参数,就以whence设定的起始位为准,0代表从头开始,1代表当前位置,2代表文件最末尾位置。 file.tell() 返回文件指针的当前位置。 那么思路就比较清晰了,写一个死循环,循环内记录指针位置并赋值给seek函数:

fedora21无缝升级到23

Roy
今天看到消息说在12月1号后,fedora将停止对21及以前版本的yum源中软件的更新、新增,作为一个“尝鲜爱好者”当然必须使用最新版的软件了,于是决定对fedora进行升级,目前版本是21,直接升级到23。注意,本文只适用于21,22进行升级,而20及以前的版本命令是fedup而非dnf。 首先执行: sudo dnf update sudo dnf system-upgrade download --releasever 23 经过漫长的等待后:

django性能分析

Roy
一般情况我们使用django-debug-toolbar就能够看到每个步骤的耗时等信息,不过如果需要调试某个接口就不那么直观了,这种情况下我们可以使用下面的中间件来解决问题: # Orignal version taken from http://www.djangosnippets.org/snippets/186/ # Original author: udfalkso # Modified by: Shwagroo Team and Gun.