TL;DR 最近把博客渲染、部署的工作从我很久前自己写的 blog-deploy 迁移到了 Hugo,原因是前者功能太简单了,而又无心再去维护。顺便又优化了下博客样式,加入了近年来流行的暗色元素。 由于我的博客是全权托管在 GitHub 上的,以前 repo 全…
TL;DR 最近把博客渲染、部署的工作从我很久前自己写的 blog-deploy 迁移到了 Hugo,原因是前者功能太简单了,而又无心再去维护。顺便又优化了下博客样式,加入了近年来流行的暗色元素。 由于我的博客是全权托管在 GitHub 上的,以前 repo 全…
前两天有 PHP 的道友问我如何拿 PHP 实现程序自动更新。但是我对自动更新这个功能,说实话是并没有太大兴趣去搞的。我认为我把我写的程序源码放到 GitHub 这种代码托管平台上,然后如果你需要用的话就直接 clone 下来丢到服务器上跑就…
在 ES6 中提供了一种新的异步编程解决方案,那就是 Generator 函数。这种函数又被称为生成器函数、可暂停函数。在它的方法体内可以使用 yield 关键字,配合 yield 可以实现协程。 本文主要介绍对 Generator 函数的实际应用,不过多介绍 Generator 函数的相关基…
最近有个 Vue 项目,是使用 Vue-cli 构建起来的。Vue-Router 是使用的 HTML5 History 模式。这个模式是使用浏览器提供的 History 接口实现的,所以如果是在页面上通过点击链接往里面 push 一个新地址是没问题的,但是如果直接请求这个地址则…
这篇文章记录了我学习 Go 语言中的协程与通道的一些笔记,是片断性的。 01. 无缓冲通道 ch := make(chan int) 无缓冲通道只能包含 1 个元素,读和写都是阻塞的。 02. 缓冲通道 ch := make(chan int, 5) 有缓冲的通道可以包含指定个数的元素,读和写都是异步…
项目的目录结构会影响整个项目的文件排布甚至是整个项目的文件架构。所以在开始编写代码之前要先明确项目的目录如何去安排。其它语言可能对项目结构没有什么要求,相对更加自由一些,而 Go 语言做了这方面的规定。这样…
最近学习了一下 Go 语言,发现里面很多东西都和其他语言都不太一样。下面是学习过程中对 Go 中的指针部分做的一些片段性的笔记。 01. 数组指针 package main import "fmt" func main() { // 一个 [3]int 型数组 arr := [...]int{1, 2, 3} p := &arr // 一个指向 [3]int 型数组的指针 test(p) // 传…
SQL 标准定义了 4 种隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。 低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。 00. 查看隔离级别 # 全局 select @@global.tx_isolation; # 当前会话 select @@session.tx_isolation; # 设…
在上一篇文章《Let’s Encrypt 免费 HTTPS 证书申请》中,介绍了通过 文件验证 的方式申请 Let’s Encrypt 证书,并为 Nginx 配置证书的整个流程。 那么这篇文章来介绍下如何通过 DNS 验证 的方式申请并为 七牛云 配置 SSL 证书。 那么可能会有人说…
我博客使用的是 Let’s Encrypt 的证书,为什么要用他呢?免费啊!而且还很方便,官网上写了这样一句话: Let’s Encrypt is a free, automated, and open Certificate Authority。 之前想整理下申请过程的,可是一直没时间,现在来写一下叭。其实…