2018-09-08 Mithrilwoodrat
假设我们现在有这样一个任务,需要快速从 Nignx logs 中统计出访问量前10的 ip 及其访问次数。 以 github 上的nginx_logs 为例 (格式参考官方文档) 继续阅读 »
2018-09-08 Mithrilwoodrat
在日常的工作过程中,我们常常会遇到各种需要分析数据的场景,简单的比如说统计今天服务访问中有多少请求的 status_code 是 500,或是从几天的后台服务 log 中寻找特定的 log 来定位错误。复杂的情况下可能涉及到多天的数据聚合发现异常,或是从实时日志中统计用户信息,甚至是从TB、PB级别的数据中检索、聚合出需要的信息。 继续阅读 »
2018-01-29 Mithrilwoodrat
2017年过去了,我很怀念它。 写2017新年杂谈的时候,我提到过,之前的目标是找到一个能够糊口的工作。 所谓能糊口的工作,即不考虑长远的情况下,工资足够维持在祖国的首都的基本生活支出,能够有机会沉下心学习技术。这个目标基本算是完成了,虽然持续的时间不怎么长。 继续阅读 »
2017-08-28 Mithrilwoodrat
PyLongObject PyLongObject 定义在 include/longobject.h 中,实际的 longobject 对象定义在 include/longintrepr.h 中。 ~~~C // include/longobject.h typedef struct _longobject PyLongObject; /* Revealed in longintrepr.h */ ~~~ 继续阅读 »
2017-07-30 Mithrilwoodrat
PyObject CPython 中基本的数据结构是 Object,所有的 Python 对象都可以用PyObject *来访问,CPython 中通过 Object 手动实现了对象系统。 PyObject 定义于 include/object.h 中,可以看到,结构体里只是一个简单的 PyObject_HEAD 宏。 继续阅读 »
2017-06-21 Mithrilwoodrat
准备调试环境 目前 CPython 的开发已经迁移到了 Github 上,可以直接去 Github clone 对应的分支。 我们将基于 Python 2.7.13 版本, Linux x86_64 环境进行接下来的工作。 下载好代码以后以 继续阅读 »
2017-04-09 Mithrilwoodrat
1 之前的项目里做了很多跟 DSL 有关的工作,加上某天在 HackerNews 上看到了how-i-wrote-a-self-hosting-c-compiler-in-40-days 这篇文章,于是又燃起了动手写个玩具编译器的想法。 继续阅读 »
2017-01-02 Mithrilwoodrat
每年都会写一篇新年杂谈,过去一年格外懒,一共没写几篇博客。 趁元旦假期的最后一天,抓紧时间开写,免得打破这个习惯。 过去一年多的时间里一直为找一份糊口的工作四处奔波,没有想到最后又回到了北京。 第一次在北方的过冬,在暖气基本等于没开的小黑屋里,看着窗外雾霾里若隐若现的路灯,和马路上冒着热气的井盖。 感觉就像看到福特告诉阿瑟地球马上就要被沃贡人毁灭了一样荒诞。 继续阅读 »
2016-10-05 Mithrilwoodrat
之前闲着无聊,参考着《程序员的自我修养》把最后一章的 minicrt 移植到了 64 位环境下。 项目地址:https://github.com/Mithrilwoodrat/toy-crt 移植到64位下主要存在的问题就是 read write 等 system call 是由 gcc 内联汇编实现的,移植到64位下需要按照64位的格式重写。 继续阅读 »
2016-04-24 Mithrilwoodrat
之前没事看了一点 flask 和 werkzeug 的源码, 就想着试一下做一个简单的 WSGI Server。 说到 WSGI, 可以先从 CGI 说起,所谓 CGI(Common Gateway Interface),可以理解为 Web Server 调用本地的可执行文件来参生动态内容的方式。 参考 CGI-维基百科。 继续阅读 »