如果你已经下载到了论文的 pdf 文件,知道论文的标题名和数据库名,那么你就不用再去网站下载 citation 信息,可以直接在 JabRef 中用标题名搜索该论文。比如你知道论文标题叫做 A Survey of xxxxxxx,可以从 IEEEXplore 数据库中获得,那么你可以直接在 JabRef 中选择 Web search->Search IEEEXplore,然后用标题名搜索,点 Fetch,就可以直接得到 citation 信息(但搜索可能出现错误,那么你就需要用 Google Scholar 并且到论文网站上下载了)。
只需要将下载下来论文的文件名保存成特定的格式,一种方法是文件名中包含 BibTeXkey,如果是 A. Yao 在 2005 年发表的文章,文件名就起为 xxx-Yao2005-yyy.pdf;一种方法是文件名包含论文名。然后修改匹配规则:Options->Preferences->External Programs->Use Regular Expression Search 文本框,比如在当前目录下匹配包含 BibTeXkey 的文件:“./.*[bibtexkey].*\\.[extension]”,在当前目录下匹配包含论文名的文件:“./.*[title].*\\.[extension]”,在子目录中匹配包含 BibTeXkek 的文件:“**/.*[bibtexkey].*\\.[extension]”。如果我们把文献数据库 bib 文件和 pdf 文件放在同一目录下,只需要使用在当前目录下匹配即可。
文件名和匹配关系修改好了,那么我们就可以将论文记录关联到文件了。如果是一次导入很多文献,可以使用批量处理:Tools->Scan database->Sychronize file links,但是同步的时候不要选择 Check existing file links,那样会很慢;处理单一记录的方法是:双击某论文条目,或者选中后按 Ctrl-e,就可以编辑该条目。进入 General 选项卡,在 File 条目后面点 Auto,JabRef 就会按照匹配规则搜索匹配的文件,关联到该条目。如果能搜索到 pdf 文件,关联后该条目的前面会出现一个 pdf 图标,点击该图标,就可以直接打开该论文的 pdf 文件。除了自动匹配以外,也可以使用 Auto 旁边的 + 号手动添加文件。
在一个文献数据库中,文献还可以分组。View->Toggle groups interface,可以新建、修改分组,这样有一个好处是可以将该数据库所属大方向的很多小方向分组浏览,对初期准备了解研究方向大致轮廓的研究人员很有帮助。
5. 与 vim 结合使用
前面说过,JabRef 可以和很多软件结合使用,但是有一些软件我并不熟悉,所以这里仅仅介绍一下 JabRef 和 vim 关联使用的技巧。
JabRef 是使用 vim server 和 vim 通信的,所以这要求双方使用同样的 vim server 名。在 JabRef 一端,Options->Preferences->External Programs->Vim Server Name 文本框中就是 vim server 名,你可以使用默认的 vim 服务器名 vim,也可以修改成任意名字,比如 solrexvim;在 vim 一端,编辑 LaTeX 文件时不要使用通常的命令启动 vim,要加上 vim 服务器名,比如 vim --servername solrexvim --remote-silent xxx.tex,这条命令的意思是:使用 vim 连接到服务器 solrexvim 修改 xxx.tex 文件,如果该服务器不存在,就创建它。
开放数学电影《维度:数学漫步》(Dimensions: a walk through mathematics)是一部两小时长的 CG 科普电影,共分 9 个章节,讲述了许多深奥的数学知识,如 4 维空间中的正多胞体、复数、分形(fractals)、纤维化理论(fibrations)等等。这部电影以创作共用 署名-非商业用途-禁止演绎 3.0许可证发布,你可以自由下载和复制但不允许修改或商业使用。————援引 Solidot
这部电影我已经下载下来好长时间了,今天才想起来看一点儿,发现有点儿意思。请看这部电影开篇的话:
My name is Hipparchus. I lived in the second century before the birth of Christ, and I don't think I'd be bragging if I told you that I am the father of the sciences of Geography and Astronomy. You know, I wrote more than 14 books but unfortunately they have almost all been lost in the mists of time. I was responsible for the first catalogue of the stars, founded the field of mathematics called trigonometry and even invented the astrolabe. Fortunately, my brilliant successor Ptolemy, three centuries after my time inspired by my work, took up where I left off, and nowadays historians sometimes can't determine what was my contribution and what was his.
有很多人在播放这部电影时候遇到问题,暴风影音是没办法播放这部电影的,Windows 媒体播放器可以播放但无法加载字幕。这里我推荐两款非常优秀的开源播放器,SMplayer 和 VLC,它们都有 Linux 和 Windows 版本。他们都能播放这部电影,但是由于本片中文字幕使用 UTF-8 编码,字幕加载可能有一些小问题。下面是使这两款播放器能够正常显示本片中文字幕的设置(它们的菜单项在 Windows 下和 Linux 下几乎没有任何不同)。
SMplayer:
Options->Subtitles->Default subtitle encoding: UTF-8
如果是 Windows 系统,可能还需要在 Options->Subtitles->Font 中选择一下系统字体。
VLC Player:
Settings->Preferences->Video->Subtitles/OSD->Text renderer->Font:
Linux(Ubuntu) 下找到:/usr/share/fonts/truetype/wqy/wqy-zenhei.ttf(可以换成系统中其它的中文字体)
Windows 下找到:C:\WINDOWS\Fonts\simsun.ttc
Settings->Preferences->Input/Codecs->Other codecs->Subtitles->Subtitles text encoding: UTF-8
PS: 特别推荐一下 SMplayer
我在 Linux 下和 Windows 下现在都是使用 SMplayer 播放器(不用提醒我它和 mplayer 关系)。除了它的界面在两个系统下保持一致,完美支持 GBK 编码字幕之外,在播放上还有几个好处让我觉得特别顺手(可以说是我原来用暴风影音时候梦寐以求的特性):
前一篇博客中说到我买票失败的经历,也充分表达了我想买一张二手座票的意愿。怎么办呢?只好到网上各二手火车票信息平台去找了。心肠不好的人肯定幸灾了祸地在想:“哈哈,这个倒霉的小伙儿该对着浏览器不停地按 F5 了!” 你才 F5 呢,你们全家都 F5。那是典型的 Windows 用户的想法,不要以为 Linux User 跟你一样傻。
前面都是玩笑话 :),本文只是想介绍一下在 Linux 下有什么更方便的方法来追踪网页发布的信息,以展示 Linux 的命令行工具有多强大(也响应一下 Eric 师兄的文章:完全用键盘工作-3:常用的命令行工具)。
我们就拿火车网为例,通常情况下 Windows 用户为了在火车网上找一张二手火车票信息,会不断地到查询页面刷新,看有没有自己需要的车票。而一个 Linux 用户的做法会有何不同呢?一般来讲他会用工具来做这件事情,而不是在那傻刷,浪费时间。
Tor 是一个旨在抵御流量分析的匿名网络访问服务,它也可以被用为穿透网络 censorship 的工具,它的官方网站为:http://torproject.org (很可惜的是,大陆用户已经无法正常访问这个站点了)。
由于 Tor 在中国的使用还算比较广泛,我的朋友中也有不少使用它作为穿墙工具的,我想关于它的安全问题应该有人感兴趣。这篇博客将简要介绍 ICC(International Conference on Communications, 世界通信大会) 2008 的一篇论文 A New Replay Attack Against Anonymous Communication Networks 中描述的对 Tor 匿名性的一个很有效的攻击方法,这篇论文荣获了 ICC 2008 Best Paper Award(好好好好羡慕啊~~~)。
Tor 网络是由洋葱路由器(下简称路由器)、目录服务器和洋葱代理服务器(下简称代理服务器)组成的。所谓洋葱路由,就是用户发出的消息会被多层加密,每到一个路由节点,路由器解密一层来获得下一跳信息,就像剥洋葱一样一层一层解密,到最后一层才是用户的原始消息。
Tor 的工作方式是经过多次转发消息来保护原始地址不被侦知。其进行一次通信的流程是:用户在 PC 机上安装洋葱 socks 代理服务器,设置浏览器或应用程序通过本机的代理服务器访问网络;代理服务器从目录服务器得到可用的路由器列表,在用户发起 TCP 请求时,本机代理服务器选择中间通过哪些路由器转发消息,然后将用户的 TCP 包多层加密后发送出去;转发路径上经过的路由器对消息逐层解密转发,最后一跳的路由器(出口路由器)和目的主机进行正常的 TCP 通信,然后将返回的消息按照原始路径发送给用户。
A 文中采取的攻击方法是:假定攻击者可以控制入口路由器和出口路由器,由于 Tor 采用计数器模式的 AES 加密算法(能否解密和包的顺序有关),那么在入口路由器处重放已经发送过的消息(包的顺序被打乱),就会造成出口路由器解密失败,收到错误的数据包。由于攻击者控制了入口和出口路由器,那么通过将入口路由器重放消息的时间和出口路由器检测到错误的时间联系起来,就能确定这次通信的源和目的地,破坏了网络访问的匿名性。
虽然假定攻击者可以控制入口和出口路由器看起来是一个很强的条件,但 A 文中通过实验验证了拥有洋葱路由网络的路由器并成为入口并不算很难(Tor 网络本身就是由许多志愿者的主机组成的),再加上一个修改过的代理服务器软件,完全可以实现对使用该软件的用户的路由选择策略的控制。如果攻击者拥有足够的资源(比如某些强力部门),使用足够多的主机加入 Tor 网络,根据 Tor 的路径选择策略优化这些路由器的分布,我觉得也有可能实现上述条件。
总的来说,相比与其它一些对匿名网络流量进行监控的攻击方法,A 文的攻击是相当简单直接并且高效的。我简单查看了 Tor 软件的 ChangeLog,没有发现它对这一攻击进行有针对性的修改(也许是我看的不认真)。
所以呢,对中国用户来说,通过 Tor 来穿墙是可以的,但是过于相信 Tor 的匿名性并且用其去发布敏感信息或者进行其它不法行为是要三思而后行的,这也就是为什么 Tor 软件自己也说:
This is experimental software. Do not rely on it for strong anonymity.