玻璃齿轮 - SlassGear

咬合的齿轮,会擦出怎样的火花?

理解GEVENT的协程调度 – 如何在GEVENT里结束一个CPU BOUND 操作

说起这个需求,其实是来自于实现一个Gevent内的代码执行器的逻辑。 这个逻辑要求定时运行某个用户的callback,但是必须不能一直执行这个callback,所以要有Timeout,在Timeout到达的时候,自动kill掉用户的Greenlet.

重新理解变量在函数内作用域和栈的关系

引子 以前对于函数作用域和栈的关系非常不清晰,只知道栈是系统为一个程序预分配的一块空间,程序的预声明变量都存在系统的栈当中,用malloc*分配的空间则在堆当中。 “作用域”和“栈”是一个抽象的概念,并没有深入的理解他们之间的联系。 一直以来都对代码如何在计算机中运行这一块饶有兴趣,最近刚好有时间来了解一下这里面的原理。

我为什么要写[CMDTREE]这个命令行库

CmdTree是一个命令行库,参见 这里 https://github.com/winkidney/cmdtree 轮子满地都是……然而我又再造了一个(自尽 现有的库虽然有各自的设计哲学,却无法满足某些特定的需求:)。 能不能享受click带来的便利的同时,也能获取到argparse的子命令支持呢? 为了不再每次都要重复解决这个问题,复制粘贴代码,我写了CmdTree.

两个极限编程大赛题解

引子 上周基友忽然问我,周六能不能帮他写写代码,说是参加什么比赛,可以多个人一起做题,赛程好像是24小时。 当时我感觉应该是比较麻烦的事情,准备不做的,不过后面一想,万一很有趣呢,哈哈。 到了周六,都差点忘了有这回事,被一个QQ消息提醒了,就开始做题了。后面才知道,这个活动叫“极限编程大赛”,会临场发布一些网上基本上搜不到的问题,给你解决,分数根据跑过的测试用例来计算。 我帮他做了两个题,都...

理解 WERKZEUG 的 THREADLOCAL 实现

https://github.com/pallets/werkzeug 文件在 werkzeug/local.py 看这部分源码,主要想搞清楚以下几个问题: ThreadLocal解决什么问题 ThreadLocal如何实现 ThreadLocal的生命周期管理 ThreadLocal解决什么问题 ThreadLocal是需要拿来和全局变量对比的。 当大家都需要用相同的逻辑,引用相同的变...