ABC记法
ABC是一种文本记谱法, 既方便人工录入,也方便计算机读取。
继续阅读 →ABC是一种文本记谱法, 既方便人工录入,也方便计算机读取。
继续阅读 →Gentoo系统中的Portage树存储了软件仓库中所有软件的元信息。其中最主要的是Ebuild脚本,它记载了软件的编译方法、依赖关系等。它通常位于/usr/portage。
可想而知,这个树中包含了大量的文件,因此占用了很大的磁盘空间。根据我最近的测量,
但实际上,其中大部分文件都比较小,且属于较易被压缩的文本文件。因此,值得考虑使用一种压缩的文件系统存放Portage树。
SquashFS是一种可压缩的只读文件系统。将Portage树的全部内容放在其中,只需约50MiB的存储空间。
在配置SquashFS的过程中,走了一些弯路。因此,我把操作过程记录在这里,以便日后参考。
继续阅读 →我最近尝试了在 Gentoo 上用 QEMU 运行 Windows 10。 我想把过程中的一些细节记录在这里。

Gentoo Wiki 和 ArchWiki 上的 QEMU 条目也是很好的参考。
继续阅读 →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 "$@"
继续阅读 →dc 是 UNIX 系统上的计算器 (desk calculator) 程序。
它采用逆波兰表达式 (RPN) 语法, 和平常使用的算术表达式稍有不同。
如: 1 2 + 3 * 表示 (1+2)*3。
RPN 的好处是不用输入括号, 且熟练掌握后效率很高;
缺点是难以上手。
dc 的计算能力不仅限于此。
实际上, 它是一个图灵完备的语言, 并且据说是第一个被移植到 UNIX 系统上的语言。
由于可以定义并调用宏, 它具备了分支和循环的能力, 因此可以写出各种各样的程序。
本文要讨论的不是人的睡眠而是计算机的睡眠 (suspend) 操作。
我的 Gentoo 系统上有一个困扰了我很长一段时间的问题: 当计算机从睡眠状态中恢复时, 我的无线网络连接往往会失效。 这时, 我需要手动重置无线网络服务:
/etc/init.d/net.wlp4s0 restart
究其原因, 是 DHCP 客户端未能在唤醒时重新申请新的 lease, 路由表也没有被更新。
看 /etc/wpa_supplicant/wpa_cli.sh, 这个脚本在无线网络连接/断开时会被触发,
但是并不会触发 DHCP 客户端重新获取 lease。
所以一个简单的解决方案是在这里加上 DHCP 的操作。 查看 udhcpc 的帮助,
SIGUSR2 和 SIGUSR1 分别可以用于释放和重新申请 lease: