用Python模拟计算猎魔人的百步穿杨效果

标签:Python, Diablo3

猎魔人有个很出名的被动技能叫做“百步穿杨”,它的效果是暴击率每秒增加 3%,暴击后 1 秒重置到初始暴击率。
不过我用它的时候很纳闷,它对暴击率的平均提升到底有多少呢?数学很糟糕的我决定还是用 Python 模拟计算一下吧。

粗略统计CSDN泄漏的密码

标签:Python

这次CSDN的账号密码泄漏,我出于好奇,就写了个Python脚本来分析这些600多万密码。
结果发现大多数用户的密码长度在8~14位之间,有29万用户的用户名和密码相同,有289万个密码为纯数字,最常用的10个密码为:123456789、12345678、11111111、dearbook、00000000、123123123、1234567890、88888888、111111111和147258369。
其中,使用123456789或12345678的用户有44万;而dearbook这个诡异的密码居然也有46053人采用,搞不懂……

字符串相加并不慢

标签:Python, 性能, JavaScript, Java

在学Java时,我对拼接字符串有个很深刻的印象:StringBuilder.append()比String相加要快很多。
这个偏见影响了我几年,直到今天才发现它并不一定适用于其他语言。

Tornado的IOStream简介与应用

标签:Python

Tornado的核心源码是由ioloop.py和iostream.py这2个文件组成的。前者提供了一个循环,用于处理I/O事件;后者则封装了一个非阻塞的socket。
有了这2者后,就能搭建起TCP server和HTTP server,实现异步HTTP客户端,这便是Tornado的主要内容了。
之前在研究socket时已差不多弄懂了ioloop的逻辑,于是本文就接着研究iostream了。

用Tornado打造WebSocket与Ajax Long-Polling自适应聊天室

标签:Python, AJAX

这几天忙着研究Tornado,想着总得学以致用吧,于是就决定做个聊天室玩玩。
实际上在Tornado的源码里就有chat和websocket这2个聊天室的demo,分别采用Ajax Long-Polling和WebSocket技术构建。
而我要实现的则很简单:将这2种技术融合在一起。

« 看看还有什么好玩意