0%

HHKB (happy hacking keyboard) 是世界顶级键盘品牌,自 1996 年推出以来畅销至今。与其他键盘不同,HHKB 机身小巧,省略了 F1 - F12 功能键、光标键和 Page Up / Page Down 等功能键,使其整体得以集成在仅仅 60 个按键上。麻雀虽小,五脏俱全,通过调整开关配置键盘布局,我们能使用不同键位组合复现 101 全尺寸键盘的所有功能。

本文提及的键盘配置方案,适用于包括 HHKB Pro 2 在内的大部分现役产品。对 HHKB 机身后方的六个开关,我推荐使用如下的配置:

  • Windows: 开启 1 3 4 号开关
  • MacOS: 开启 2 3 4 号开关

后文将详述采用此配置的理由。

Read more »

Jupyter notebook(原 ipython notebook)是统计、数据分析和机器学习的利器。一般情况下,jupyter notebook 网页应用运行在 http://localhost:8888,用户可以在本地计算机通过浏览器访问和使用。但在某些时候,我们想把 jupyter notebook 应用架设在公开的服务器中,以便获取更强的计算能力和更多的内存,同时省去在每台电脑上安装和配置 jupyter notebook 的过程。

本文以 debian/ubuntu 系统为例,讲解如何安全地搭建 jupyter notebook 服务器,以允许授权用户使用任意浏览器在任意设备上访问这款应用。

Read more »

谈到时间管理,最先映入脑海的恐怕是番茄工作法了。我不是番茄工作法的粉丝,我有一套自己的时间管理工具和方法。简单来说,所有的任务被分成两类:有明确时间期限且耗时较短的,和时间期限模糊或耗时较长的。对于第一类任务,便签/日历/定时提醒就可以胜任;而至于第二类,时间本身变得不那么重要,对任务追踪的要求凸显出来。在各类任务管理工具中,GitHub 的 issue 和 project 给我留下了深刻的印象。即便不是程序员也没关系,我们不需要写一行代码,不需要有提交记录,就能享受那些工具带来的便利。

Read more »

为了防范潜在的 DDOS 攻击,避免经济损失,我在近期升级了本博客的服务器。更新后,服务器实装了 Nginx 自建的 HTTP 限流模块,配合 fail2ban 封杀恶意 IP,可以有效抵御大量并发请求对服务器的干扰。

Read more »

如果你下载了一个 C/C++ 工程的代码,想在 Linux 平台上编译生成可执行文件,应该怎么做呢?理想的情况是这样的:

第一步当然是解压缩了。用 unzip 指令解压 .zip 文件,其它所有奇奇怪怪看不懂的压缩包一般都可以用 tar zxvf 解决掉。

进入工程根目录,输入 ./configure 执行 shell 脚本。这个脚本会检测你的编译环境,并生成合适的 Makefile 文件。

执行 make 开始编译过程。如果想把编译的成果安装到计算机上,有时还可以再加一步 sudo make install

但是,出于种种原因,99%的工程都不会像刚才描述的那样一帆风顺。本文以 ONScripter 为例,还原了编译过程可能会遇到的诸多困难,希望能为你带来些许启发。

Read more »

Windows Thin PC 是微软基于 Windows 7 开发的面向低端电脑的操作系统。Thin PC 的更新支持周期和 Windows 7 一样长,并具有多项优点。Thin PC 的体量小巧,完全安装仅占用 4 GB 磁盘空间;它集成了 BitLocker 等多项 Windows 7 旗舰版才具备的功能;它的破解方式也相当简单。尽管 Thin PC 对内存使用数量做出了限制(最多可以引用约 3 GB 的内存),但这不能阻止它成为 Windows 虚拟机的理想选择。

Read more »

用户通过 ssh 连接到远程主机,如果 ssh 在尚有任务执行时挂断,正在运行的任务会因收到 SIGHUP 信号而退出。为了避免消耗本地资源,并消除网络不稳定对任务的影响,我们可以设法假装远程 ssh 连接始终存在:终端复用器 tmux 正好可以担此重任。

Read more »

随想君在拖延多年之后终于动笔写 linux 新手教程了。尽管他会以 debian 为例介绍 linux 的安装、配置和使用,评论中大家最感兴趣的发行版却是 archlinux。基于上述原因,我打算抢在编程君之前发一篇 archlinux 教程。我使用的 archlinux 是 parabola 重制版,它的 MATE desktop live CD 提供了自助安装 archlinux 的工具,用户无需参看教程即可完成。本文则讲解如何在一个干净的 archlinux / parabola 系统中安装图形用户界面。

Read more »

对待科学上网,要拿出科学严谨的态度。在群众广泛使用的工具中,shadowsocks 历经多年屹立不倒,其中的原因值得深入探究。本系列文章从源码级别解读 shadowsocks,揭开科学上网工具的内幕。

文中提及的 shadowsocks 是 @clowwindy 使用 Python 编写的原始实现,版本号为 2.9.1,可从 GitHub 官方页面 下载。

Read more »

LoveLive!学园偶像祭(以下称SIF)是一款对无氪党相当友好的游戏。虽然无氪玩家不使用真金白银换取心资源,但是心在游戏中并不难获取,而且玩家在游戏中遇到的大部分问题都可以通过其他方式解决。

Read more »

本篇,我们来详细讲解 spacemacs evil mode 的常用操作。

Evil,全称 Emulation vim layer。作为 emacs 的扩展插件,它可以模拟绝大多数 vim 的键位和指令。emacs 的功能和可扩展性远在 vim 之上,但键位设计导致其编辑速度无法与 vim 抗衡。evil mode 通过在 emacs 中模拟 vim 的方式解决了这一问题。

启用 evil mode 只需要把 .spacemacs 文件中的 dotspacemacs-editing-style 设定为 'vim 即可。

在阅读本文前,你需要对 vim 的模式和键位有基本的了解。文中用 C- 代表 Ctrl 键,M- 指代 Meta 键(通常映射至 Alt)。列出的操作已在 ubuntu 系统中验证过。windows 与 macOS 的按键可能略有区别。

Read more »

我曾经是 vim 的忠实用户。去年开始尝试使用 emacs。即便花了很多时间记忆键位和指令,我在 emacs 上却始终不能达到 vim 的编辑效率。后来,我听说了 evil mode,也就是在 emacs 中使用 vim 键位的模式。把 evil mode 与自动补全、模糊查询等强大功能整合到一起的,是一款名为 spacemacs 的编辑器。在这一系列文章中,我将讲解如何高效地使用 spacemacs —— vim 和 emacs 的集大成者。

Read more »

如果你拥有自己的域名和服务器,并且想要免费获取 HTTPS 证书,Let's Encrypt 是你的不二之选。本文以 Debian/Ubuntu 系统和 Nginx 为例讲解如何在服务器上部署 Let's Encrypt 证书。

Read more »

From time to time, you may need to execute some privileged commands in a shell script. While using sudo, you may want to either enter your password only once for a long running script, or execute the script without giving a password at all. This article will tell you how to do it in the right way.

Read more »

我从小到大没遇到过一个靠谱的语文老师,作文也总是在二类和三类之间徘徊。第一次了解科学的写作方法,是在 GRE 的课堂上。我把老师讲解的那套议论文的系统性写作理论称为“树形论证框架”。

树形论证框架,就是说文章的逻辑结构长得像一棵倒立的树。作者在开头提出观点。为了论证这个观点是正确的,作者需要给出足以支持该观点的条件。这样的条件可能是一个简单的陈述,可能需要多个陈述同时满足(与条件),可能只需满足几个陈述中的一个(或条件),也可能是与之对立的陈述不成立(非条件)。无论是哪一种情形,现在作者的任务,就从论证原观点是正确的,变成论证支持原观点的条件是正确的(或与原观点对立的条件不成立)。这个转变,就是树形论证框架的核心,又称为递归论证。那么什么时候可以结束呢?当举出的陈述是读者认可的基本原理或客观事实,不需要进一步展开解释的时候,相应的逻辑就自然结束了。当然,实际写作中,为了语言简洁流畅,可以隐含地给出条件,而不需要把所有条件都列出来。只要读者在阅读后可以轻易地找到句子间的逻辑关系即可。

Read more »

如题,这是我 2017 年的简要规划。从今往后,我会在每年年初写一篇规划,年末发表一篇总结。本文是整个系列的第一篇。


首要原则

从初中到现在,我已经和制定规划打了十年交道。这十年的经验汇成一句话:少即是多。人有一种贪大求全的倾向,喜欢把规划写得很宏伟、很美好,然后憧憬它变成现实。但现实是残酷的,资源是有限的,必须集中力量办大事,不能面面俱到。因此,一个好的规划,只会安排几件重要的事。这是制定规划的首要原则。

Read more »