Yukang's Page

使用overcommit生成git hooks

git hooks很方便地可以在git操作流程的各个阶段加入hooks,比如执行一些脚本来检查代码风格、跑单元测试、做代码静态检查等。git hooks的试用方法是在.git/hooks目录下写各种脚本,但是.git目录的这些脚本是不会checkin到repo里的,所以如果一个代码如果被 .....
阅读全文

Nginx https too many redirect

Http请求在经过多层Nginx的时候,通常强制http跳转到https的时候会这样配置: return 302 https://$host$request_uri; ## 需要注意这里是request_uri而不是uri,否则会引起安全问题 但是如果是多层Nginx,前面的Nginx .....
阅读全文

Linux 当前 shell 执行命令

Linux shell 执行脚本的时候一般是会 fork 出一个子 shell,这样在有的时候就不方便了,比如要unset 当前shell 的环境变量等, #!/usr/bin/env zshif [ -z $http_proxy ]; then echo "not using p .....
阅读全文

Ruby的 open 函数导致命令执行

说明首先看看 open 函数的文档说明, https://apidock.com/ruby/v1_9_3_392/Kernel/open/class: If path starts with a pipe character, a subprocess is created, con .....
阅读全文

BuckleScript and Reason

BuckleScript虽然我不是前端工程师,不过因为喜欢 OCaml,所以偶尔关注 BuckleScript 有一段时间了,今天又花时间看了看文档和代码。BuckleScript 是张宏波主导开发的开源项目,『有希望成为第一个完全由国人设计主导实现并被世界各地广泛使用的编译器』,不过是 .....
阅读全文

《深度工作-如何有效使用每一点脑力》读后

深度工作这本书主要讲解了一些时间和精力管理方面的东西,人到了一定年龄就会觉得时间不够用,日子过得太快,每天觉得都没干什么就过去了。工作几年后这种感觉时不时袭来。反而是如果某段时间一直有一个阶段性的目标,就会觉得很踏实,进度和效率也可以。那种完全沉浸在思考中的状态真的也并不是累,相反所得到 .....
阅读全文

Kong的0.11.0版本

Kong发布了新的版本0.11.0,从这里开始区分了社区版本和商业版。这次改动比较大的是丢弃了serf,这样整个Kong节点之间的缓存同步方式变化了。开发者给出的理由如下: 依赖serf,serf并不属于Nginx/OpenResty 这种依赖相互间通信来同步的机制对于deploym .....
阅读全文

Lua时间处理

我需要用Lua处理一个与时间相关的问题,比如我们在配置文件里面配置一个日期(北京时间),然后在Openresty里面判断当前时间是否在这个日期之前或者之后来做对应的逻辑。 Lua的时间处理还有点麻烦,主要是自带的相关库函数比较少。 os.time() &l .....
阅读全文

使用 exercism 来练手学语言

有时候我们想学一门编程语言,但是光看看书和代码用例总是找不到感觉,这时候我们应该尝试写点不短不长的程序片段,可能是一个函数,或者是实现一个简单的算法。最近我发现这个叫做exercism.io的网站不错,自己也在闲余时间在上面看看。 这里支持30多种编程语言,每种语言大概有80个左右的小问 .....
阅读全文

从 Jekyll换成Hexo

昨天看到自己的 Blog 在移动端显示丑死了,所以想着优化一下,找一个 mobile first 的风格试试。顺便把 blog 从 jekyll 换成了 Hexo。最后找到这个 hexo 的主题非常顺眼,便拿来用了,感谢yanm1ng为大家提供如此优秀的主题。回想起自己之前用过搜狐博客, .....
阅读全文
Prev Next