闲话git reset和git revert

在最近一次面试中,面试官问到了如何删除git中某次指定的提交,由于自己之前都没这个问题的使用场景,有时候发现commit信息有误后也是直接使用--amend参数进行纠正的,所以当时对这个问题回答得并不好。今天查了一些资料,也算对此有了一些认识。 先说说git revert,因为我觉得它比较好讲清楚。git...

more


对Python函数传参的一些思考

今天看到这样一个问题: Python 的函数是怎么传递参数的,有了一些兴趣,因为以前都是直接信的一个流传度较广的说法 对于不可变对象作为函数参数,相当于C系语言的值传递; 对于可变对象作为函数参数,相当于C系语言的引用传递。 那么事实上真是如此吗?我们来看几个例子。 首先我们来看看第一个说法,这里我实验环境是Python3.6。...

more


grafana使用中遇到的一些坑

prometheus+grafana的系统监控方式用起来很不错,最近开始使用它来监控haipproxy和weibospider。由于网上相关的中文资料比较少,所以在使用它们的时候还是遇到很多坑。这篇文章主要提一下自己遇到的几个小坑。 1.如何显示对人类友好的时间?...

more


如何将自己的Python包发布到PyPI

以前写过一篇类似的文章: 如何打包自己的项目并且发布到pypi上,不过由于PyPI进行了一些更新,因此旧方法不大适用了。趁端午有时间,想把haipproxy的客户端发布到PyPI,以改进用户体验,因此这次又尝试了如何将Python包发布到新版本的PyPI上。 编写setup.py 以haipproxy为例,它的setup.py如下 from os import path as...

more


谈谈__eq__和__hash__

今天刷一道算法题的时候用到了list_a == list_b的判断,==和is大家都已经是耳熟能详了,前者是判断值是否相等,后者是判断引用是否相等,在用==操作符进行判断的时候,其实内部调用的是__eq__方法。比如 class Item: def init(self, val): self.val = val def eq(self, other): return self.val ==...

more