使用正则表达式匹配DOI

先看几个DOI的例子:

  • 10.1093/nar/gkh458
  • 10.1146/annurev.micro.112408.134233
  • 10.1183/09031936.02.00400202

可以看出,DOI的编码以“10”开始,可以含有数字]0-9],小数点,斜杠等分隔,但是其中不会出现空格。鉴于此,在perl中使用以下正则表达式匹配:

[cc lang=”perl”]
$str1 =~ /10\.[^\s\/]+\/[^\s]+/; # borrowed from Zotero
$str2 =~ /\b(10\.\d+\/[^\s]+)\b/; # another one
[/cc]

解决Windows XP SP3系统中播放flash没有声音的故障

这是一个很诡异的故障,我在网络上查探了多日,中英文解决方案参考了无数,却仍然没有解决。最终,通过自己的实践,发现了一个简单的解决方案。

故障的情形如下:

  1. 在系统中使用Media player播放音乐,使用射手影音播放器播放视频均有声音。
  2. 使用电话会议功能也正常。
  3. 网页中播放Flash没有声音。
  4. 系统自带录音机不能使用。
  5. 音量图标始终不能显示在托盘中。

既然你来到这里,肯定参考了网络上广为流传的关于在注册表中添加一个项目“msacm32.drv”的文章,我也是在相应的位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32 上面添加了名为“wavemapper”的项目,可是仍然没有解决。

我于是怀疑这里指定的文件是否丢失了,于是在System32文件夹中查找“msacm32.drv”,发现同名文件也还存在。

我觉得事已至此,应当尝试一下替换该文件,于是从网上下载了原始的“msacm32.drv”文件,文件大小20kB。与我机子上原有的同名文件差别巨大,原有文件大小为848KB。将原有文件备份,将原始文件复制到System32文件夹中,重启计算机,一切正常了。

故障原因分析:系统文件损坏造成的。

故障解决方案:使用原始系统文件替换即可。

使用poEdit汉化wordpress插件、主题攻略

关于“.pot”文档、“.po”文档和“*.mo”文档的来历见上面图片。

简而言之,这是一个开源软件本地化(或者国际化)的系统。而且是一个能够自动化运行的系统。使用该系统仅仅需要一个前提,就是在调用文本相关的函数时遵循一个特定的约定。例如WordPress 使用 _e 和 __ 函数来本地化。如下所示:

[cc lang=”php”][/cc]

现在要汉化一个插件或者主题,就打开源文件,看看是否存在这样的语句。如果存在,则进入下一步。

先简介一下(www.jinbo123.com/2503.html):

一、三种文件
.po文件,.mo文件,.pot文件是由gettext程序生成或者使用的源代码和编译结果。

1、.pot文件
是一种模板文件,其实质与.po文件一样,其中包含了从源代码中提取所有的翻译字符串的列表。
2、.po文件
各语言对应的po文件,比如中文就是zh_CN.po,法语就是fr.po文件。
PO是Portable Object(可移植对象)的缩写形式,它是面向翻译人员的、提取于源代码的一种资源文件。
.po文件可以用任何编辑器如poEdit,vi,Emacs,editplus打开,交给翻译人员来将其中的文字翻译成本国语言。
3.mo文件
mo文件是一个二进制文件,不能直接编辑。
MO是Machine Object(机器对象)的缩写形式,它是面向计算机的、由.po文件通过GNU gettext工具包编译而成的二进制文件,应用程序通过读取.mo文件使自身的界面转换成用户使用的语言,如简体中文。
可以用工具如msgunfmt命令将.mo文件反编译为.po文件。

一般情况下,我们在汉化的时候会碰上如下几种情况:

二、几种情形
1、如果程序本身提供了.po文件,直接使用poEdit汉化,并自动生成.mo文件。
2、如果程序提供了.pot文件,复制一份并更改后缀名为.po,再使用poEdit汉化,最后生成.mo文件。
3、程序既没有提供.po文件,也没有提供.pot文件,只提供了.mo文件,那么将.mo文件转换成.po文件。

汉化需要用到的软件就是PoEdit(www.poedit.net/)。参见laycher.com/?p=738

将汉化的文档命名为“zh_CN.po”和“zh_CN.mo”,复制到插件或主题中的“languages”文件夹中,如没有该文件夹,则新建一个。

然后,刷新一下,就会看到主题被汉化了(注意:wordpress设置的语言需为zh_CN)。

WordPress开发实录

如果遇到后台编辑文件时没有发现“更新文件”菜单时,可能是文件没有权限被“www-data”用户修改造成的;

WordPress主题的执行顺序,见:http://ihacklog.com/php/wordpress/dig-into-wordpress/the-wordpress-theme-files-execution-hierarchy.html

更改一个主题CSS文件时,新建一个CSS文档,然后import到主题默认CSS文档中。由于CSS定义中“后来居上”,所以应当插入在最后面,以免引起冲突。如果冲突,可以尝试加入“!important”来提升优先级。

关于wordpress插件form-manager的使用,不要使用其“condition”,而应当自行编写脚本。可以使用jQuery,然后将脚本作为Note添加(插入一个script区块)。同时将用到的CSS也作为一个Note添加(CSS其实最好位于Header中,据说这样可以加快网页的渲染速度,而js则可以放在最后)。这样做的结果就是只有在有form的页面中,才会需要载入相应的js库,减少对其它页面载入速度的影响。

form-manager模板函数中的利用nickname获取数值函数很好用。然而对于文件上传来说,得到的是一个含有文件名和其它信息的数组,可以使用以下语句得到想要的东西。
wordpress.org/support/topic/plugin-wordpress-form-manager-get-image-into-template

[cc lang=”php”]

在 Fedora 14 上配置 putty 自动认证

配置要点:

  1. 在Fedora(服务器)端生成公钥和私钥;
  2. 设置公钥和私钥的权限;
  3. 下载或者拷贝私钥到要运行 putty 的电脑上(客户端);
  4. 导入私钥到putty中,保存配制;
  5. 完成。

具体操作

以下在服务器端完成。

[cc lang=”bash”]
ssh-keygen -t rsa
cp .ssh/id_rsa.pub .ssh/authorized_keys
chmod go-w .ssh
chmod go-w .ssh/authorized_keys
[/cc]

将私钥拷贝到客户端计算机上,也可以使用“PSFTP”下载到客户端上,然后依下列操作导入密钥

打开“PUTTYGEN.EXE”以便导入私钥。

将私钥导出为putty使用的“*.ppk”格式文件

退出该软件,打开putty配置文件

在“Private key for authorization”项目下面选择刚才生成的ppk文档。

保存配置文件。

打开putty,便可以不再输入密码而直接通过认证了。