Categories

Calendar

September 2010
M T W T F S S
« Aug    
 12345
6789101112
13141516171819
20212223242526
27282930  

Display Equation with MathJaX

之前一直用一个 LaTeX 的 WordPress 插件来显示公式,插件的工作原理很简单,把公式用 LaTeX 编译为 dvi ,然后用 dvi2png 之类的工具转换为图片,最后根据公式的文本内容算出一个 Hash 值,作为图片的文件名,缓存起来,下次遇到需要显示同样的公式的时候,如果文件已经存在的话,就不重新生成一遍了。

SSH tunnel tips

从我两三年前接触 SSH 的时候我就在文档上见过 SSH tunnel 相关的东西,然而当时没有怎么看明白,也就一直没有深究,直到最近需求越来越多了,才终于发现这个东西原来这么有用,于是记录在此。

SSH tunnel 主要有三种,一种是 dynamic application-level port forwarding ,可以用来作为 SOCKS proxy ,通常翻墙就是用的这种端口映射;一种是 Local Forwarding ,主要用于提供常规的加密隧道,例如让 IMAP 协议通过这个加密隧道,避免密码在网络上被人监听到;一种是 Remote Forwarding ,可以用于逆向穿透 NAT 。其实,另外还有一种专门为 X 打造的 X11 Forwarding ,一般不会用到,Linux 下远程登录通常不会需要开启 X 程序,或者有其他更好用的方法,因此我们这里并不打算介绍这个。

Poor Man’s Picasaweb Photo Uploading Script

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

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 ,说明确实有不少人需要这个功能,不过作者最近似乎有点忙,一时没法改这个。所以我就决定看看能不能改一下。

统计论文被引用的情况

昨天被导师叫过去分配了一个非常苦力的任务:统计他的论文被引用的情况。确切地说就是对于他的每篇论文,列出所有引用该论文的出版物,当然,所有的条目都要以标准的论文参考文献的格式给出详细信息来。因为这个毕竟是自己统计的,最后还要拿去图书馆查询、审核、盖章、等等等等。据说申请项目要用,看来这就是国内的现状吧?整天都忙这些事情,还有几个人能抽出空余时间去做正事呢?一直不明白何老师为啥要回国来。当然,从我自己的经历来看,很多事情其实也没有那么多的为什么,至于事情已经这样发生了,事后再要说个所以然出来,也并不是那么有必要的。

一开始我被这工作量给吓到了,那么多的论文,我怎么去找所有引用的啊?后来被告知只要包含 Google Scholar 上已经收录了的就可以了。不过大概一共有一千多 paper 吧,据说去年周 core 他们做得很辛苦。何老师给了我一个 Word 文档,说是之前的版本,其实只要在这基础上把更新的加进去就可以了。听起来好像工作量减少了许多,但是对于那种几百篇引用的论文,我去 Google Scholar 上找出来,然后每篇依次检查是否以前已经记录下来了,再决定要不要添加,看起来还不如直接无视之前的版本从头来呢。而且那个 Word 文档里面杂乱的格式,还有一些直接从 Google Scholar 上复制下来的还带着超链接的文本,对我来说颇有些不可忍受啊。然后何老师说,你去发动实验室的同学大家一起弄吧。-.-bb 大概这对我来说才是最困难的吧,那些认识但是却不是特别熟悉的人,就是你也不好意思去找人家帮忙,人家找你帮忙你也不好意思拒绝的那种,所以我也只有象征性地问问“最近超忙”的周 core ,他毕竟去年辛苦过一次了,于是还是不要拖他下水了。

Backup & Restore WordPress Blog

Google recently released a tool for converting between different blogs. I haven’t tried that tool yet, but I guess you’d have two blogs simultaneously online for converting. So the traditional way of backing up the blog data is still necessary to prevent accidentally lost of data or planned blog migration.

WordPress provided a convenient way to [...]

ImageMagick Tips: Shadow your picture (again)

我在之前的一篇 blog 中说过用 ImageMagick 来为图片加上好看的 soft shadow 的小计巧,我一直在用,觉得很方便,当时的脚本是这个样子:

1
2
3
4
5
#!/bin/sh
convert $1 -bordercolor white -border 6 \
-bordercolor grey60 -border 1 \
\( +clone -background black -shadow 60×4+4+4 \) +swap \
-background none -mosaic $1

不过其实由于使用了 -mosaic ,边缘的阴影被截断了,看起来很不好看,如下图,注意左下角和右上角的阴影部分:

参考 ImageMagick 的文档,也有解决办法,不过比较麻烦。幸运的是,从 ImageMagick 6.3.6-2 开始,我们可以使用 -layers merge 来完成这个任务,而且不会出现这样的不好看的边缘,脚本修改如下: