python_requests的使用
golang配置信息监听库viper
python基础实践
1. 模块
Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
1 | from pkg.func import hello |
__init__.py,如果目录中存在该文件,该目录就会被识别为 module package 。__init__.py在包被导入时会被执行。该文件就是一个正常的python代码文件,因此可以将初始化代码放入该文件中。
记录一次docker镜像的构建过程
在制作 Docker Images 之前, 我们先看一下Docker 官方提供了一些建议和准则,在大多数情况下建议遵守。
容器是短暂的,也就是说,你需要可以容易的创建、销毁、配置你的容器。
多数情况,构建镜像的时候是将 Dockerfile 和所需文件放在同一文件夹下。但为了构建性能,我们可以采用 .dockerignore 文件来排除文件和目录。
避免安装不必要的包,构建镜像应该尽可能减少复杂性、依赖关系、构建时间及镜像大小。
最小化层数。 Dockerfile的一行(除MAINTAINER外)对应镜像的一层,为使层数足够小,故可以将类似的命令串起来,比如RUN 指令,可以使用&&连接多个指令,如此也只有一层。
排序多行参数,通过字母将参数排序来缓解以后的变化,这将帮你避免重复的包、使列表更容易更新,如:
1 | RUN apt-get update && apt-get install -y \ |
golang的日志库zap
日志作为整个代码行为的记录,是程序执行逻辑和异常最直接的反馈。对于整个系统来说,日志是至关重要的组成部分。通过分析日志我们不仅可以发现系统的问题,同时日志中也蕴含了大量有价值可以被挖掘的信息,因此合理地记录日志是十分必要的。
golang编写测试用例
golang的websocket实战
动态库查找路径及LD_LIBRARY_PATH问题
说到和动态库查找路径相关的问题,总体上可以分为两类:
- 第一类:通过源代码编译程序时出现的找不到某个依赖包的问题
- 第二类:就是在运行程序的时候,明明把那个程序需要的依赖包都已经安装的妥妥的了,可运行的时候人家就告诉你说
error while loading shared libraries: libxxx.so.y: cannot open shared object file: No such file or directory。
为iterm2设置shadowsocks代理
shadowsocks是我们常用的代理工具,它使用socks5协议,而终端很多工具目前只支持http和https等协议,对socks5协议支持不够好,所以我们为终端设置shadowsocks的思路就是将socks协议转换成http协议,然后为终端设置即可。
1. 设置终端代理
最新的 ShadowsocksX-NG 已经支持终端代理, 我们可以如下图复制得出:
1 | export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087; |