0%

随想君在拖延多年之后终于动笔写 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 »

从大一到研二,学期小结终于写到了最后一篇。在学生生涯的结尾,没有求职的压力,又只需要上一门课,生活前所未有得轻松和愉快。摆脱了课业的负担,我尝试了许多原本无暇顾及的事情。

Read more »

ssh to a remote server and run programs inside a terminal is not a big deal for major operating systems. However if the remote program requires graphics display, it will be a little bit tricky. macOS does have a powerful terminal that can automatically create an X window for the remote application. Windows could do that too, with some sort of hacking. Thanks to the great bash on windows, the effort to run remote X applications is now minimized. The detailed steps are shown below.

Read more »

拖了一个多月的时间,终于告别了《白色相簿2》的征程。完成终章雪菜线之后,整个剧情在 coda (最终章) 走向了总爆发。先前有传闻称,绝大多数玩家在初入 coda 时都会走入冬马NE(又称浮气线)的结局。我也按照 galgame 的传统,一周目不看攻略,完全凭个人喜好做出选择。我原本估计会进入冬马的某个结局,可最后一个选项让我大吃一惊:



我就这样莫名其妙迎来了雪菜TE的结局。可从先前的选择上看,好感度明明是显著偏向冬马和纱的。难道游戏设计出现了 bug? 等我又打完了冬马TE和冬马NE这两个结局,再将做出的选择一一比对,才深刻领悟了 coda 设计的精妙之处。

Read more »

Blue Screen of Death (BSoD) is a famous but annoying symbol of windows operating system. It indicates that there are some fatal errors such that the system can't work safely. General applications don't have the ability to trigger the blue screen, so there should be something wrong with either hardware or drivers, if windows itself is not corrupted. In whatever case, you need to take actions because the blue screen will appear from time to time if the root cause is not found and properly handled.

So how to investigate the root cause of a blue screen failure?

Read more »

《人类简史:从动物到上帝》是一本不同寻常的历史书。这本书中,我最欣赏的一点是,作者彻底放弃了一般历史学者的说教态度和马后炮的研究方法,承认历史的进程实际上受到诸多不确定性因素的影响,不存在什么“历史的必然”。我们常说要“以史为鉴”,就是要把握历史发展的一般规律,并以此来指导现在和未来的决策。不过,人类相信历史存在规律,并从历史事件中总结出一二三条,并不意味着历史有必然的一面,也不代表我们能看到事件发生的真正原因(想想学术界争论不休的各种观点),更不能说时过境迁,了解这些过去的故事对当下的情境能有怎样的帮助。就像今天没有人能断定希拉里或是川普一定可以当选美国总统,但等竞选结果公布之后,就会出现各种理论解释这一结果的成因。此外,在他们上任之前,我们也无从知晓美利坚是会变好还是变坏。研究历史规律,对这些最为实际的问题,往往是没有什么功用的。放弃了这种历史的功利心态,作者站在了超越人类的立场上,以极为宏大的视角描绘了人类数万年发展的基本脉络。这一点,足以让本书与众不同。

整个人类数万年的历史,想要在一本书里表露清楚,不得不选择性地忽略很多大事件,只去探讨能反映历史精髓的事情。在谋篇布局上,作者以三次重大飞跃为分界,以“认知革命”、“农业革命/人类的融合统一”和“科学革命”统领相关的篇章,乍看之下是相当合理的。但是,如果深入到每章节的内部,并仔细研读其中的文字,不难发现作者的行文存在诸多问题。

Read more »

新的改变

这是本博客改用 hexo 引擎和更换主题样式之后的第三次重大更新。现在整个站点 bitmingw.com 以及其引用的所有资源已经强制使用了 HTTPS 加密传输。即使用户最初使用不安全的 HTTP 协议,也会被 301 重定向为 HTTPS 协议。



文章的后续部分会详细讲解本站点 HTTPS 通讯的设计与实现,供各位博主参考。

Read more »

Dynamic programming (DP) is a group of very useful algorithms to solve searching problems. In many cases, it is easy to realize that a particular problem can be solved in DP, but you may spend a lot of time on finding the iterative equations. Distinct Subsequences is one such problem.

Here is the description from leetcode.

Given a string S and a string T, count the number of distinct subsequences of T in S.

A subsequence of a string is a new string which is formed from the original string by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters. (ie, "ACE" is a subsequence of "ABCDE" while "AEC" is not).

Here is an example:
S = "rabbbit", T = "rabbit"

Return 3.

Read more »

嗯,踏入二次元并不是我预先规划好的事情。我平时喜欢搜集各种音乐来听,其中也包括各类动漫的 OP (Open Song) 和 ED (Ending Song). 不经意间,youtube 推荐的一部 MV 深深吸引了我。这部 MV 的视频取材于《樱花庄的宠物女孩》,我就这样与这部动漫不期而遇了。

《樱花庄》并不算知名的神番,但如今细想起来,拿它来入宅真是合适不过。十多年前,我在电视里看过神作 EVA (《新世纪福音战士》), 但那时的我头脑中丝毫没有 ACG 的概念。上大学以来陆续看过少数几部动漫,印象比较深刻的也只有《秒速五厘米》了。很可惜《秒五》剧情太短,哭过就完了,没能让我一遍又一遍地回忆、反思,于是我又错失了一次入宅的机会。《樱花庄》并没有采用《秒五》的煽情策略,而是牢牢围绕一条主线展开:一群天才与凡人在樱花庄这个屋檐下生活。作为轻小说改编的作品,深入刻画人性并不是它的本意。那种有矛盾有尴尬,但又处处充满了爱与友善的气氛,才是动漫着重描写的。

Read more »