vultr 服务器优惠码

用 vultr 的服务器搭建 VPN 私服还是蛮好的,效果也不错。至于怎么搭建请看 shadowsocks,这里就不赘述了。 奉上 vultr 服务器优惠链接: 新用户赠送 20 刀,有效期 1 年 ($20 for 1 year trial) 新用户赠送 50 刀, »

规范的 URL 处理

一般在公司内部,我们都能看到一个系统里面各个模块之间、各个独立的系统之间通过 HTTP 协议进行交互的场景。但是也正是因为 HTTP 那么常用,我们就不得不面对处理 URL 的这件事情。我之前在某厂经常会与其它系统联调,但是呢又老是碰到各种由于 URL 处理不规范而引起的问题,每次都要为不同的系统写各种特殊的判断分支,简直就是要疯了。后来就有了这篇笔记,现在整理出来。 URL 的结构 <scheme>://<username& »

Vim 安装 YouCompleteMe 代码提示插件

今天升级了一下 VIM 的插件。YouCompleteMe 升了级后又要重新编译。期间发生了一些错误,就把旧的笔记拿出来翻了一下。这里就简单记录一下了。 用 Vundle 安装,在 VIM 执行 :PluginInstall Valloric/YouCompleteMe 命令即可。但是安装过程中可能会出现比较多的错误。 在 mac 上做开发,一定要把 xcode 装了。省的后面很多破事。 »

Reflection in Go 笔记

本文是阅读 The Laws of Reflection 的笔记。 Go 类型 和 Interface Go 是静态类型语言。注意下图中 MyInt 和 int 也不是同一个类型。 接口类型的变量在底层存储了一个数据对,第一个数据是具体赋值给该变量的值,第二个数据是这个值的类型描述信息,即 (值, 具体类型)。接口类型的变量底层永远不会存储 (值, 接口类型) »

MySQL Limit 分页出现重复记录的问题

上周在测试一个接口的时候发现分页数据有问题,比如第一页和第二页的数据存在重复的记录,最终导致很多数据库的记录并没有出现在分页里面。后来调试了一下,检查了 SQL 语句,给出下面的一些可能出现这种问题的 cases(期待您的补充): 1. LIMIT 的参数 OFFSET 和 ROWS 的理解错误 比如写成这样的 SQL: SELECT * FROM table LIMIT 0, 10; // 取的是第 »

Go 绝对路径问题

在 Go 项目里面,我们希望能通过以 bin 文件所在目录为当前目录的相对路径来定位一些本地文件,比如配置文件、日志文件之类的。而不用去考虑启动 bin 文件的时候的当前工作目录是在哪。举个栗子: $ cd ~/my/work/space/echo_server/bin $ ./echo_server -start $ cd ~/my/work/space »

MySQL Named Lock 的几个坑

本文介绍 mysql 的 Named Lock(命名锁)。该锁可以作为简单的应用级别的互斥锁实现使用。 NamedLock 主要由以下 3 个 mysql 的内置函数实现: GET_LOCK (str, timeout) RELEASE_LOCK (str) IS_FREE_LOCK (str) GET_LOCK »

分享一段 tmux 初始化 shell 脚本,实现为不同项目初始化不同开发环境

我用 tmux 已经快两年了,在日常工作中,还算是得心应手的说。我写这篇文章有两个原因: 最近有个同事跟我说他在 iTerm 打开的窗口,本地的会支持 alt+left|right 键来控制光标向前向后跃进一个单词,而远端的窗口会不支持。他问我是怎么解决这个问题的。我的回答很简单,也很无趣:“我没用 iTerm 啊,我用的 mac os x 自带的 »

为 ghost 博客静态资源配置 CDN 加速

唠一下网上现有的方法 见到网上有人写了类似的文章,介绍了为 ghost 博客添加 CDN 加速支持的解决方案。我看了几篇,uniq 后列举主要的两篇有价值的在这里: 使用七牛 CDN 为 Ghost 静态资源加速 苏洋博客:加速Ghost静态资源 上面的两个方案都改了一些 ghost 的代码。要实现接入 CDN,这确实是最直接的方法。只要最终输出页面的图片的地址直接指向 CDN 就行了。 »

爱情

当时我抄这份歌词的时候,心里充满了感恩,觉得满满的都是幸福。现在呢,同样还是。 »