使用 GitHub Actions 实现博客自动化部署

TL;DR 最近把博客渲染、部署的工作从我很久前自己写的 blog-deploy 迁移到了 Hugo,原因是前者功能太简单了,而又无心再去维护。顺便又优化了下博客样式,加入了近年来流行的暗色元素。 由于我的博客是全权托管在 GitHub 上的,以前 repo 全…

使用 PHP 的 Phar 包实现程序自动更新

前两天有 PHP 的道友问我如何拿 PHP 实现程序自动更新。但是我对自动更新这个功能,说实话是并没有太大兴趣去搞的。我认为我把我写的程序源码放到 GitHub 这种代码托管平台上,然后如果你需要用的话就直接 clone 下来丢到服务器上跑就…

在 JavaScript 中使用 Generator 函数实现异步变同步操作

在 ES6 中提供了一种新的异步编程解决方案,那就是 Generator 函数。这种函数又被称为生成器函数、可暂停函数。在它的方法体内可以使用 yield 关键字,配合 yield 可以实现协程。 本文主要介绍对 Generator 函数的实际应用,不过多介绍 Generator 函数的相关基…

让 Vue-cli 支持 Netlify 的 Redirect

最近有个 Vue 项目,是使用 Vue-cli 构建起来的。Vue-Router 是使用的 HTML5 History 模式。这个模式是使用浏览器提供的 History 接口实现的,所以如果是在页面上通过点击链接往里面 push 一个新地址是没问题的,但是如果直接请求这个地址则…

Golang 协程与通道

这篇文章记录了我学习 Go 语言中的协程与通道的一些笔记,是片断性的。 01. 无缓冲通道 ch := make(chan int) 无缓冲通道只能包含 1 个元素,读和写都是阻塞的。 02. 缓冲通道 ch := make(chan int, 5) 有缓冲的通道可以包含指定个数的元素,读和写都是异步…

Golang 项目目录结构

项目的目录结构会影响整个项目的文件排布甚至是整个项目的文件架构。所以在开始编写代码之前要先明确项目的目录如何去安排。其它语言可能对项目结构没有什么要求,相对更加自由一些,而 Go 语言做了这方面的规定。这样…

Golang 指针的一些零散笔记

最近学习了一下 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 证书

在上一篇文章《Let’s Encrypt 免费 HTTPS 证书申请》中,介绍了通过 文件验证 的方式申请 Let’s Encrypt 证书,并为 Nginx 配置证书的整个流程。 那么这篇文章来介绍下如何通过 DNS 验证 的方式申请并为 七牛云 配置 SSL 证书。 那么可能会有人说…

Let’s Encrypt 免费 HTTPS 证书申请

我博客使用的是 Let’s Encrypt 的证书,为什么要用他呢?免费啊!而且还很方便,官网上写了这样一句话: Let’s Encrypt is a free, automated, and open Certificate Authority。 之前想整理下申请过程的,可是一直没时间,现在来写一下叭。其实…

Next Page Prev Page