近代科技:IRC

IRC (Internet Relay Chat) 是 90 年代提出的互联网协议。 用户可以连接到 IRC 上与其他用户进行即时通讯。多个用户可以在一个频道(类似聊天室的概念)交流,也可以进行两用户间的一对一交流。 协议很简陋,只能传输文本内容。即便如此,这个协议体现了早期互联网标准化和开放的特点:任何人可以根据标准,制作自己的实现;不同的实现可以互联互通。

和IRC有关的更多信息可以参考 http://www.irchelp.org/

继续阅读 →

文摘

严复在一篇文章中提到这样一句话:

華風之弊, 八字盡之: 始於作偽, 終於無恥。

话说得很重, 但有时也是非常准确的。

查询这句话的出处时, 又看见了他写的《論世變之亟》。 其中有一些句子至今仍值得思考。

继续阅读 →

文摘

……被看作什么,很大程度上是基于社会认同和社会价值观的。 ……说不好听的,都是一些人为了增加自我认同感和群体认同感,为整个社会风气强行定下的规则和秩序,是充满着固执与偏见的。并不是所有人都要把某一个人认为重要的事情,当作对自己也同样重要的事情来看待的,我们所谓的自由权利,也如此…… ……习惯“适可而止”的人怎么着都会适可而止,不会有这些烦恼,而不想适可而止,无非就只是因为不愿意被条条框框所束缚。但反而是这样一群不死板的人,会展现出更多的创造力,越是看那些需要想象力、创造力的行业,越会发现这样“不适可而止”的人有更多更大的成就。 原文作者:凌子卿 继续阅读 →

手动双面打印

在不具备自动双面打印功能的硬件/软件上, 可以通过先打印偶数页、 然后将纸张放回, 再打印奇数页的方法实现手动双面打印。 在一些打印机上, 需要将放回的纸张调转方向; 这可以通过打印偶数页时调转页面方向来避免。

在使用 CUPS 的机器上, 可以使用以下脚本实现此功能:

#!/bin/bash

# Usage: ./duplex.sh [options] <file>

lp -o page-set=even -o orientation-requested=6 -o outputorder=reverse "$@"
printf "Put the paper in tray and hit Enter"; read
lp -o page-set=odd "$@"
继续阅读 →

古代科技: desk calculator

dc 是 UNIX 系统上的计算器 (desk calculator) 程序。 它采用逆波兰表达式 (RPN) 语法, 和平常使用的算术表达式稍有不同。 如: 1 2 + 3 * 表示 (1+2)*3。 RPN 的好处是不用输入括号, 且熟练掌握后效率很高; 缺点是难以上手。

dc 的计算能力不仅限于此。 实际上, 它是一个图灵完备的语言, 并且据说是第一个被移植到 UNIX 系统上的语言。 由于可以定义并调用宏, 它具备了分支和循环的能力, 因此可以写出各种各样的程序。

继续阅读 →

WiFi 和睡眠

本文要讨论的不是人的睡眠而是计算机的睡眠 (suspend) 操作。

我的 Gentoo 系统上有一个困扰了我很长一段时间的问题: 当计算机从睡眠状态中恢复时, 我的无线网络连接往往会失效。 这时, 我需要手动重置无线网络服务:

/etc/init.d/net.wlp4s0 restart

究其原因, 是 DHCP 客户端未能在唤醒时重新申请新的 lease, 路由表也没有被更新。

/etc/wpa_supplicant/wpa_cli.sh, 这个脚本在无线网络连接/断开时会被触发, 但是并不会触发 DHCP 客户端重新获取 lease。 所以一个简单的解决方案是在这里加上 DHCP 的操作。 查看 udhcpc 的帮助, SIGUSR2 和 SIGUSR1 分别可以用于释放和重新申请 lease:

继续阅读 →

FbTerm: 终端下的中文显示和输入解决方案

Linux 内核支持 Unicode。 但是它的显示驱动只支持 256 个不同的字符。 所以没有办法显示中文。 一般的解决办法是使用 fbterm (该项目已停止开发)。 FbTerm 用最新版本的 FreeType 渲染时会有一些问题, 主要表现为西文字母显示出较多毛刺。 这个问题可以通过这个补丁解决。 FbTerm 也提供了一个输入法框架。 我把我之前为 ibus 编写的输入法移植到了 FbTerm 中, 只不过功能更加薄弱了: 屏幕录像 继续阅读 →

概率问题二则

问题一: 设 \(X_i\) (\(i=1,2,\dots,N\)) 为相互独立的离散随机变量, 取值为整数, 且服从 \([0,M)\) 上的均匀分布。 求 \(\Pr(X_1<X_2<\dots<X_N)\)。

继续阅读 →

自制 IBus 输入法 (2)

今天我进一步完善了我自制的 IBus 输入法。主要有两方面的改进:

  1. 码表不再是 hardcode 在代码中的了,而是运行时加载。这样,可以支持多个码表,只需修改 XML 文件<engines> 项目,不需要重新编译程序。
  2. IBusProperty 来指示输入法的中/英文状态。
继续阅读 →

Gentoo 除错日志

2018-6-9 更新: 文中部分过时信息已用删除线划去。

之前几天重新配置了我的 Gentoo 桌面环境。很遗憾的是官方源中的 Gnome 在不用 systemd 的情况下是无法顺利安装的,我暂时不打算更换整个 init 系统,所以我先装了 Xfce 凑合。(除了功能稍显单薄,Xfce 的各方面我都很喜欢,可能是因为它是我用过的第一个 Linux 桌面环境。)

rui@localhost ~ $ uname -a
Linux localhost 4.14.8-gentoo-r1 #6 SMP Mon Dec 25 16:54:41 EST 2017 x86_64 Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz GenuineIntel GNU/Linux
继续阅读 →