从图片生成 PDF 文件

今天在网上找了 "River Flows in You" 的五线谱,不过下载下来是好几张 png 格式的图片文件。为了方便管理和打印,我打算把这几张图片合并成一个 PDF 文件存放。 我平常都会用 ImageMagick 的 CLI 工具来批处理一些常用的图片任务。所以本能反应就是能不能用 ImageMagick 来做。然后 Google 了一下,果然可以耶。 命令很简单: »

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 是啥,这里有个博主写的不错 👉 Tmux - Linux从业者必备利器。 tmux 它有个后台进程,管理了你的所有会话(session),会话下面有窗口(window),窗口下面还可以分屏(panel)。盗个图如下(@Luke 的图画真是棒棒大): 我这里就不多说了,看看上面链接的博文吧。网上一搜类似的文章也很多啦。 我有这样的一个需求,我期望执行 tmux 的时候自动执行某些脚本,最好是可以根据不同的项目来执行不同的脚本。 »

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

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