Categories

Calendar

July 2017
M T W T F S S
« Jun    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

让 trackpoint 的 middle-click 与 scroll 共存

Thinkpad 上的小红点(Trackpoint)一直是让人爱不释手的东西,使用起来非常方便,也不像触摸板那样经常会不小心碰到,另外,用 trackpoint 还可以很方便地模拟滚轮操作,在 Windows 下,只要安装了 trackpoint 的驱动,就可以在控制面板里设置滚动了,设置好以后只要按下中键,然后移动 trackpoint 就可以实现像上、下、左、右四个方向的滚动了。不过其实我一般是不用这个功能的,有些程序(比如 Firefox)本身就支持中键点击启动滚动,无论是 trackpoint 还是普通的鼠标(不过工作方式有些不同,有些时候,如在 Google Reader 页面上不太好用),当然,最大的原因还是启用了这个驱动之后原本的鼠标中键功能就丧失了。例如,在 Firefox 里可以用鼠标中键点击在后台打开新标签,或者中键单击关闭标签等,都会变得不可用。如何同时使用滚动和中键的功能,我 google 了很久都没有找到满意的答案。

不过我后来发现在 Linux 下倒是可以很方便地办到这一点,创建一个文件 /etc/hal/fdi/policy/mouse-wheel.fdi ,内容如下:

Symlink with Directories

Linux 下的软链接 (英文通常称作 symbolic link, soft link 或者是 symlink) 是非常实用的东西,我想任何经常在 Linux 做事情的人都会时不时地会用到这个东西。相比起硬链接来说,它要更加灵活一些,限制也更少,而相对于 Windows 下的那种“快捷方式”来说,它又更加底层一些,处在文件系统层面,很多操作(例如打开文件 open )都会自动 follow 链接到指定的文件,因此它对大部分应用程序可以说是完全透明的。虽然如此,也有一些特殊的地方对于把 symlink 当作“自己本身”来处理还是当作“它所指向的源文件”来处理却并没有一个定论的。

让 Linux 下的 FTP 服务器支持 GBK 编码

在 Linux 中使用 UTF-8 作为 locale 已经成为理所当然的事,而 Linux 下的许多 FTP server 并不会处理文件名的编码,因此 UTF-8 的 locale 使得 FTP 服务里的文件名编码也是 UTF-8 的,原本都使用 UTF-8 是一个很好的解决方案,也是一个大趋势,然而 Windows 下有许多程序却只支持 GBK 这一系列的编码,或者是根本没有考虑编码的问题,因此也只能处理 Windows 默认的 GBK 编码了。所以在 Linux 下架设的 FTP 服务器让使用 Windows 的朋友来访问的话,中文可能会出现乱码,就显得不太友好了。为此也有不少解决方案,其中包括针对 vsftpd 的补丁,可以进行编码转换。然而这个补丁对于现在的 vsftpd 的版本来说有点老了,而且在 64 位的系统下面的错误:

Gracefully Shutdown in openbox

懒散了很长一段时间,一直持续本本 Windows XP 实验室 Ubuntu 的状态,最近终于借“毕业了要喜庆一下”的理由又给本本装了一个 Linux 。虽然仍旧很懒散,但是毕竟是自己的本本,还是喜欢清爽一点,因此用了 openbox 作为窗口管理器,tint2 作为任务栏,用了一周左右挺舒服的。

不过有一个小问题,就是我希望从 openbox 中 shutdown 、restart 的时候能像在 Gnome 或者 KDE 的 session 中那样“优雅”地退出,然后 login manager 也退出,然后屏幕上显示正在关闭的服务,而不是要暴力地直接运行 sudo shutdown -r now 然后屏幕直接黑掉,需要看指示灯才能知道什么时候机器真正关掉了。另外,在 Gnome 或者 KDE 中从对应的 GDM/KDM 中登录进来的话,关机是不需要 sudo 权限的。

在 LaTeX 中输入 1st、2nd、3rd

正好想在 LaTeX 中输入序数,而且希望是 1st 这样的格式,当然用 amsmath 宏包我可以手工使用 1$^{\text{st}}$ 来实现这样的功能,但是数字如果要变的话,改起来还是比较麻烦,最关键的还是这样的办法看起来相当“业余” ,于是我 google 了一番,找到了“专业”的方法,记在这里以备后用。

那就是使用 engord 宏包。在 \usepackage{engord} 之后,只要使用 \engordnumber{3} 这样的命令就能自动出来 3rd 这样的东西了。

闲谈程序的配置文件

通常我们写程序的时候都会有一些可调控的参数,简单的控制可以通过命令行参数来实现,然而复杂一些的则一般会使用配置文件的形式。可以说这几乎是每一个程序都会需要考虑的一个问题:使用什么样形式的配置文件?虽然 Microsoft 在 Windows API 中提供了注册表以及 ini 文件的读写功能,但是在这一块似乎还是没有像 zlib 之于压缩那样被广泛接受的方式。其实原因也很简单:需求差别太大了。

例如 Emacs 的配置文件,目标是达到最大的灵活性,因此它就纯粹是 Elisp 代码了。类似的有 Rake 的 Rakefile ,其内容实际上是合法的 Ruby 代码,因此写起来和用起来都比 Makefile 要方便了许多。另一方面,对于 pymmseg-cpp 或者 rmmseg-cpp 来说,性能最重要,因此配置文件(辞典)采用了最简单的以行分割的形式,没有使用二进制格式,是因为希望保持配置文件的可编辑性,虽然这个大概说成是数据文件似乎更贴切一些。

除去以上两个极端情况,其他时候使用什么格式的文件就通常是看怎么用方便了。比如我在 YASnippet 中给 snippet 文件定制的属性格式就是简单的每行一个