Categories

Calendar

May 2018
M T W T F S S
« Jun    
 123456
78910111213
14151617181920
21222324252627
28293031  

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 位的系统下面的错误:

Poor Man’s Picasaweb Photo Uploading Script

虽然不太常用网络相册,但是有时候也会把照片传到 Picasaweb 上作为一个备份。如果安装了 Picasa 的话可以很方便地上传,另外,也有为 IE 做的 ActiveX 控件可以方便地批量上传照片。但是 Linux 下地 Picasa 据说是用 wine 模拟的,不想用,而浏览器也没有 ActiveX 可以用,手工一个一个地上传颇有一些麻烦。后来发现 Google 其实提供了它的各种服务的 API 的 Python binding 可以比较方便地使用,这样就可以弄一个脚本来上传了。

Linux 下 Thinkpad 多媒体键 OSD

Thinkpad 的键盘上有一些特殊地按键如音量控制等,在 Linux 下可以通过 tpb 这个工具利用起来,tpb 可以识别这些按键并执行一系列地操作,例如调用某个脚本或者用 xosd 在屏幕上显示(音量、亮度等)一个状态。不过我新装的这个 Arch Linux 的 tpb 在 Thinkpad X200 下工作不太正常,于是用了另一个办法来解决,使用很浮云地 notify-osd 加上自制的脚本来实现相同的目的。

以下是废话:
最近频繁地背着笔记本往来于 ZJG 和 YQ 两个校区,原来那个 Thinkpad R60e 不仅非常重,而且散热量非常大,看到毕业结算的时候学校退了一些学费,于是加上自己攒的一些钱买了一个 Thinkpad X200 ,顿时感觉好轻呀!

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 权限的。

解决 ibus 在 gVim/Emacs 下不能使用的问题

ibus 是 Linux 下一个比较新的输入法框架,其下的 ibus-pinyin 也是比较不错的一个输入法,不过整个项目相对来说还是比较新,所以偶尔也还会有一些小问题,并不是诡异的 bug 或者是开发难度上不可行,只是大概还有跟多优先级更高的模块需要处理,比如之前说过的用 Ctrl 切换中英文状态的问题。事实上如果只是自己用的话,做一点小小的 dirty hack 也是非常方便的事情,因为 ibus 是用 Python 写的,直接修改系统中对应的文件即可,甚至都不用重新编译。

如题目所说,今天要解决的问题是 ibus 在 gVim 和 Emacs 下不能使用的问题。先说 Emacs 吧,这个似乎是一个老问题了,症状就是在 Emacs 里不能激活输入法,好像从数年前开始就一直都有类似的问题,包括 scim、 fcitx 等众多输入法在内都有过类似的问题,似乎是一部分 Gnome 用户会遇到,在 Emacs 里无法激活输入法,但是也有另外一些人正常使用,所以后来似乎也没弄明白原因,这里的问题我也不确定是不是同一个,但是症状确实挺像。

让 ibus pinyin 输入法使用 Ctrl 来切换中英文输入状态

实验室的机器自从升级以后,Xorg 似乎已经可以完全无视 /etc/X11/xorg.conf 的内容配置了,所以我在里面写了交换 Caps Lock 和 Ctrl 也没有任何效果,虽然我可以通过 xmodmap 来做映射,但是这样好像 fcitx 又不认,不能用 ctrl 来切换中英文输入状态了,这个问题我很久很久以前做过 patch ,不过后来 fcitx 的版本似乎有些乱,时而能用时而不能,很诡异。鉴于现在已经完全不像以前那样爱折腾了(在实验室电脑上用了一个完全安装的 Ubuntu 就是一个最好的证明),所以就先忍着。结果这两天 fcitx 干脆连输入状态条都不见了,终于忍无可忍,装了一个 ibus 输入法。

第一感觉是 ibus 输入法还不错!至少在现在 Linux 下的各种输入法当中算很不错的了吧!只是有两个问题:

打开模糊音之后巨卡,反应及其迟钝,这个我一时也没有办法,对于输入法的算法并不了解,所以只好关掉模糊音,忍一忍了。
中英文切换是使用 Shift ,并且不可配置。当然,很多人都习惯这个快捷键,不过还有另外很大一部分人(包括我)喜欢用 Ctrl 来切换。搜索了一下发现一个 Issue ,说明确实有不少人需要这个功能,不过作者最近似乎有点忙,一时没法改这个。所以我就决定看看能不能改一下。

浙江大学计算机系本科生毕业论(设计)LaTeX 模板

Short Version: 源代码参见 github 上的项目仓库,或者直接点击这个链接下载最新版本,基于 XeTeX ,依赖 XeCJK ,针对 2009 年浙江大学计算机系本科毕业论文的格式规范和 Word 模板设计。

Long Version: 最近在做毕业设计,要写毕业论文,里面有不少公式,想用 LaTeX 来排版。在 zjuthesistex 这个项目里有浙江大学的硕士和博士毕业论文的 TeX 模板,但是由于本科毕业论文各个学院的要求都并没有统一,所以也一直没有人做一个模板出来。我自己的 TeX 知识其实也就只有那么一点,每次写东西都要查许多次文档才能弄好,也从来没有做过模板,所以到底要不要用 TeX 来排版也一直很犹豫。

不过正巧前一阵子为 MSTC CFF (Coding For Fun) 出题的时候偶然找到了 XeTeX 这个东西,又听说了 XeCJK ,这两个东西加起来真是让人爱不释手呀:

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

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

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

ELPA: Emacs Lisp Package Archive

TeX 有 CTAN,Perl 有 CPAN,Python 有 PyPI 和 easy_install (虽然好像至今还不支持自动 uninstall),Ruby 有 RubyForge 和 gem ,诸如 Eclipse 、NetBeans、Firefox 这样的大型软件都有方便的插件/扩展查找和自动安装的功能,更别说各大流行的 Linux 发行版所带的那些包管理器了。然而号称具有无穷可扩展性的超强编辑器:GNU Emacs ,虽然确实具有无数的扩展,但是这些扩展往往各式各样、散落各地,并且正是由于这无穷的扩展性,让各个扩展的安装定制方式千奇百怪,很难统一在一起。我想这也是 Emacs 长久以来一直没有统一的扩展管理的原因之一吧。

不过一直被人们说成不“Modern”的 Emacs 近年来也确实有发愤图强,添加了 GTK 界面的支持,新的编码系统,对 XFT 的支持等等。而 EmacsWiki 的兴起也终于让大部分的 Emacs 相关的信息有了一个统一的汇集地,大部分的扩展都可以在上面找到相关的下载和安装指南。不过这离自动管理还有一定的距离。不过,再后来,我们终于有了 ELPA (Emacs Lisp Package Archive) 。