自 2014 年,始终博客就开始使用 Hexo 这个静态站点生成工具了;犹记得当时参考的文章,是 Bruce 的 Hexo 你的博客

始终博客采用的主题,是 iissan 创建的 NexT。NexT 主题默认提供了两个站内搜索解决方案:swiftype 和 tinysou。早年时候,始终博客采用了 swiftype 作为站内搜索方案;但后来因为 swiftype 改版而失效,就放弃了。

近期,随着始终博客的文章数量不断增加,陆续有友人建议应该为博客加上搜索功能。然而,出于几方面的考虑,我一直没有加上搜索功能:

  • 不愿意受限于第三方服务,第三方服务可能说变就变——曾经的各种博客网站,以及 swiftype 就是如此;
  • 不喜欢第三方服务的样式,与博客样式脱节;
  • 使用第三方服务,需要应用第三方的 JavaScript 脚本等内容,可能存在安全风险。

经过检索之后,我发现 Hexo 已有可以接受的解决方案了。本文来介绍如何在 Hexo 博客中建立自己的本地搜索引擎。

阅读全文 »

在 LaTeX 中输出英文之外的其他字符总是不那么自然,需要一些折腾。例如让 LaTeX 输出中文就走过了天元、CCT、CJKxeCJK 这些路子。

以现在(2017-09)来说,在 LaTeX 中混排中英双语已经不是什么难事,只需要使用 xeCJK 宏包或者 CTeX 宏集即可。但若是想要在一篇文档里排版多语言,则很多人就不知道怎么办了。

阅读全文 »

SSH 协议是事实上的互联网基石之一。在 SSH 协议出现之前(1995 年由 Tatu Ylonen 设计),通过互联网远程登录其他设备(tlnet)的过程是明文的。这意味着,整个通信过程,很容易被旁路嗅探,泄露敏感信息。

OpenSSH 是 SSH 协议的经典实现。目前,它作为各 Linux 发行版默认自带的 SSH 工具分发;因而广为使用。

若你在学习工作生活中,需要通过 SSH 协议,登录、管理多台服务器。那么,一方面你可能会厌烦记忆各个远程服务器的主机名/IP 地址;另一方面你可能会被繁琐的口令输入过程弄得烦躁不安。特别地,若是你需要在同一台远程主机上,打开多个终端窗口进行操作时;你可能需要反复输入多次用户名和口令(在不用 screen/tmux 之类的工具的前提下)。

这篇文章首先会尝试介绍 Linux 自带的 SSH 工具的基本用法,并附带介绍 SSH 配置文件的编写规则。而后,尝试解决上述繁琐的记忆和口令输入命令。

阅读全文 »

众所周知,CPU 不能直接和硬盘进行交互。CPU 所作的一切运算,都是通过 CPU 缓存间接与内存进行操作的。若是 CPU 请求的内存数据在物理内存中不存在,那么 CPU 就会报告「缺页错误(Page Fault)」,提示内核。

在内核处理缺页错误时,就有可能进行磁盘的读写操作。这样的操作,相对 CPU 的处理是非常缓慢的。因此,发生大量的缺页错误,势必会对程序的性能造成很大影响。因此,在对性能要求很高的环境下,应当尽可能避免这种情况。

此篇介绍缺页错误本身,并结合一个实际示例作出一些实践分析。这里主要在 Linux 的场景下做讨论;其他现代操作系统,基本也是类似的。

阅读全文 »

网上有一个流传多年的段子。这个段子大致是说,若你在简体中文版本的 Windows 系统下,用系统自带的记事本程序,以默认的 ANSI 编码保存「联通」两个字,那么重新打开后「联通」二字就消失了。如果我没记错的话,还曾有好事者据此编排,认定 Windows 背后的微软和联通有仇,故意不让联通二字正常显示。

当然,这个说法肯定是假的。但是这一现象背后的原因究竟是什么呢?实际上,网络上也有不少文章专门解释了这个问题。虽然以我的经验,能够看懂。但是若是「三秒变小白」,这些文章就不令人满意了。这是此文的缘由。

阅读全文 »

在最初学习 LaTeX 插图的时候,我就发现,基本的 LaTeX 手段不支持 GIF 格式的动图。虽然一直保持对此的好奇,但是因为没有实际需要,再加上「论文等文稿不适合插入动画」的论调,所以一直没有去探究可行性和解决办法。

前段时间,因为制作一个幻灯片(离散卷积和卷积神经网络)的需要,不得不插入动画以演示「卷积」的过程和效果。于是就借此机会,摸索了如何在 LaTeX 中插入动画。此文是对上述过程的归纳总结。

本文主要介绍两部分内容

  • 如何在 LaTeX 中插入 GIF 格式的动图;
  • 如何在 LaTeX 中插入 TikZ 代码绘制的动画。

以及介绍一些运用动画效果实现的黑科技效果。

阅读全文 »