背景

实现白名单,只允许可信用户访问我的服务
考虑采用iptables或者nginx

如果用nginx,那么可以建立一个allow_ip.conf,然后把这个配置文件include到nginx的配置中
用户可以主动添加他们的IP到我这,打算玩玩tornado,用户输入他的IP,然后存入到我的文件中,最后定时合并到allow_ip.conf

阅读全文 »

背景

为了提高工作效率,我司的软件青年们搭建了一组内网mirror,包括apache,pip,npm,jenkins,ubuntu等等。
想用得爽,就得保持与官方一致,需要很频繁的同步。
以前的同步是单线程的,感觉没有完全发挥带宽的优势,所以想尝试一下多线程同步。

大概的思路

前言

最近领导强推单元测试覆盖率,要求达到80%。我打探了一下,据说覆盖率是更上层领导的考核指标,所以今年我们组一大任务就是这。没几个人觉得写好单元测试是为了提升软件质量,提高自己的代码水平。
可以预见的是,有人会为了提高覆盖率,写一堆无效代码。 “上有所好,下必甚焉”。

距离我上一次吐槽已经过去了半年,我们的单元测试变成了什么情况呢?
半年前我的猜测是为了提高覆盖率,写一堆无效代码,然而实际情况却比这更糟糕。

  • 有人的测试函数的末尾始终是
    1
    EXPECT_EQ(TRUE=TRUE)

这样每个用例都是绿的

  • 还有人这么写
    1
    2
    //init module
    //run module

测试的是整个模块的输入输出,这样可以保证覆盖率

领导看到用例一片绿,覆盖率90%,觉得我们的代码质量很高。

然而,这并没有什么卵用!!!
这真的没有什么卵用!
这真的没有什么卵用!
这真的没有什么卵用!

阅读全文 »

背景

虽然久闻docker大名,但一直没有尝试过,固然可以说是比较忙的原因,但忙不是我们不学习新技术的借口。
也许以后工作可能会用到docker,我得未雨绸缪,提前准备,开始学docker了

阅读全文 »

背景

现象

主进程不断调用7z.exe进行解压,当文件数量较小时,顺利运行。当文件数量达到几十万的时候,运行过程中7z报错,fatal error 2。
网上很多同僚说这是由于系统资源不足造成的。观察此时的内存及磁盘使用情况,都很充裕,但为何还说资源不足呢?于是开启了蛋疼的定位之旅,至于为什么说很蛋疼呢,这是因为是一个低级错误导致的问题。

心急的朋友可以直接看原理:https://github.com/CodeJuan/HandleLeak

不着急的朋友可以慢慢看定位过程

阅读全文 »