看似高大上的人工智能、机器学习,实际上都脱不开数学的支持。在这些数学内容中,最重要的无疑是两个部分:代数和概率论。我无法在博客中完整地介绍代数(特别是矩阵论)和概率论,但是将其中部分有趣又重要的内容提出来讲解,还是可行的。

此篇,我们谈谈矩阵的 SVD 分解。

阅读全文 »

最近在自如租房时,负责租房的管家提供了名为「自如分期」的房租付款方式。观其操作模式,与信用卡分期还款、银行现金贷基本无差。印象里,以前有看到过文章讲述信用卡分期还款是不划算的;所以,在选择付款方式时,我就多留了一个心眼。

这里,将相关的分析,记录下来。以便让后来者明白:为什么说信用卡分期还款是不划算的。

阅读全文 »

自 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 设计),通过互联网远程登录其他设备(telnet)的过程是明文的。这意味着,整个通信过程,很容易被旁路嗅探,泄露敏感信息。

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

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

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

阅读全文 »

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

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

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

阅读全文 »