simplicity is prerequisite for reliability
如果你一直在用一款软件,却没发现任何非预期的状况,那只能说明你对这款软件的使用还不够深入
小鶸·仁波切

自封「Grav 大中华区首席布道师」的我,用 Grav 搭建博客将近一年,却一直没碰到什么奇怪的问题,对此我深感惭愧,用得还不够深入啊!就在今天,事情出现了转机,我似乎把 Grav 用出 bug 来了。

Read More...

前些日子我对 Grav Admin 的访问速度感到很不满意,经常打开 Dashboard 页面就给我来个 504 Gateway Timeout,不得不再刷新一次才能正常访问;甚至有一次我在编辑页面写了一大段文字之后,保存失败导致内容丢失,后来尝试再写也没法补全丢失的内容。这份不愉快让我萌生了寻找一个更厉害的博客引擎的念头。

但是基本上 Grav 已经是 2016 年最棒的开源 CMS 了,也就是说综合各个方面因素,没有什么比它更好的 CMS 可供选择。失望之余不免产生想要亲自动手造一个轮子,但是考虑到我已经废弃了原本就不怎么突出的前端能力,如今的我已经对实现一个靠谱的博客后台力不从心,这些冲动最终也只是想想而已。

Read More...

也许你已经注意到,我的博客的样子变了。不管是变得好看还是不好看,总之是有了些变化。我大约在一年多前写过一篇 博文,记录当时给博客更换主题时的经历和思考。这一次就不仅仅是换个主题这么简单了,我更换了整个博客系统,将博客从 Hexo 迁移到了 Grav

之所以会对博客做这么大的动作,其实是在两年的时间里使用静态博客生成器,能玩的花样基本上都玩了,但还是明显地感觉到一些不便(或者说是在折衷上有冲突),想要在一个新的世界里开始新的折腾之旅。

Read More...

几个月之前,我贪图部署方便,把博客的部署方式,从本地编译推送更新变成了借助 Github 和 Travis-CI 自动部署

用了几个月一直相安无事,直到几天前我小小修改了一下主题,展示了文章的更新日期。

Read More...

这几天突然发现,我认真写博客,大概有一年的时间了。除开 2014 年 8 月写的那篇介绍 pyiconv 的博文不算,2015 年 1 月 6 日 和 7 日这两天,应该是我认真写博客的开始。

可以说,去年一年里,写博客成了我生活中一个重要的活动。写到这里的时候,我无意中看了一眼页面预览,100 POSTS,57 TAGS。

Read More...

最近开始有网友注意到我博客中的 Favorite 页面,并在该页面下留言或者邮件咨询页面的实现或者实施问题。有些是想知道我这个页面是怎么实现的,有些是尝试在自己的博客中加入类似页面后发现图像没有加载的。

随着 Hexo 这个静态博客框架越来越流行,它的用户群中也就加入了越来越多的普通用户。作为一个自诩为 Hexo 资深用户的家伙,看到自己信赖的软件被广泛传播,其实是挺高兴的。

Read More...

最近在琨少的推荐下,我稀里糊涂的就变成了「云栖社区专家」,人生中第一次在某个平台变成了大 V。云栖社区是阿里云推出的一个技术博客社区,我在云栖社区的主页是 潘家邦的云栖小居

上周,云栖社区的运营妹纸从旺旺上找到我,问我是否愿意入驻云栖社区,有人向他们推荐了我云云。

Read More...

目前该插件有坑,会造成 html 标签提前闭合,我已经在我的博客停用,待我有空的时候研究研究尝试修复

这两天我又为 Hexo 写了一个插件,详见 JamesPan/hexo-filter-asset-inline

前一篇博文「异步加载非核心 CSS」中,我使用 loadCSS 实现了非核心 CSS 文件的异步加载,这样子即使这些位于公共 CDN 上的锦上添花的 CSS 不可用,也不至于阻塞博客的访问。

那么,既然有「非核心」CSS,那么什么是「核心」CSS,什么是「核心」JS?在我看来,「核心 CSS」就是那些一旦缺失,整个页面立刻崩坏的 CSS,「核心 JS」就是一旦缺失,页面上某些重要功能就会不可用的 JS。

Read More...

双十一当天晚上,我成功地在 DaoCloud 使用 Docker 部署了一个博客镜像。于是我的「分布式高可用博客」有了第三个后端😂。

DaoCloud 根据代码目录中的 Dockerfile,在代码提交到 Github 之后,自动抓取最新的代码进行自动集成,通过集成后就构建 Docker image,然后自动部署最新的镜像。

Read More...

持续部署是敏捷开发中的概念,是持续集成的延伸。大体的外在特征是代码合并到主干之后,集成系统自动地把主干代码部署到生产环境。

现在 Github 上大量的开源软件都在使用一个叫 Travis CI 的服务来做持续集成,也就是在代码推到 Github 之后,Travis CI 根据位于项目根目录的 .travis.yml 中的描述来构建集成环境、运行测试并产出集成报告。

Read More...