2008年10月5日星期日

《X档案》的第二部电影 I Want to Believe 主要是给fans准备的


刚看了《X档案》的第二部电影 I Want to Believe,去豆瓣上做记录时留意到,大部分人给了三分。

这部片子不是为一般的观众准备的,他们可能觉得这部片子没讲一个完整、明白的故事。它不是《七宗罪》、《人骨拼图》,也不是《沉默的羔羊》。
  
这部片子也不是为那些科幻迷准备的,因为这里也没有再继续《X档案》的主线故事: 外星殖民阴谋论。
  
这部片子更加不是为那些只看过前面一两季,或者只看过电视台里前面配过音的少数几集的观众们准备的,喜欢看那几集还算不上一个The X Files的粉丝,或者说你们无法有足够的基础去了解这部片子在讲什么。
  
这部片子是为*真正的*X档案迷准备的。如果你完整看过200集《X档案》(好吧,最后两季除了大结局可以不算,虽然它们也很精彩,但跟这里 是有些不搭界),那你就明白,这部电影其实不是在讲这个案子本身,而是在讲信念,讲坚持。而需要你相信和坚持的东西其实你也不一定知道它就是对的。所以它其实 是在讲勇气。

四年前,我看完了《X档案》大结局(虽然这最后几集我留了很久),结束了三年的。陡然间,怅然若失,仿佛体内一个什么部件丢失了,空空的。

若干年过去了,陡然发现,虽然他们都老了,Mulder还是那个Mulder,Scully也还是那个Scully,还有Skinner。
  
还是很喜欢——虽然不觉得可以直接推荐给其它朋友看。

---------------------------------------------------
看这部片子其实挺费劲,原来买了一张D版碟,结果中文字幕很烂,有些对话没翻译,有些又明显不对。我想切换到英文字幕(想凑合着试试,虽然有英文字幕也不大听得懂),但碟子上又延续了一个D版碟的传统:英文字幕不相干,不知道搞了个什么东西的字幕。

然后从网上下rmvb格式,字幕翻得也烂,我能听出不少词压根没出现在字幕中。最大的问题是根据字幕没法看懂对话,总感觉隔了一层。

最后干脆从射手网下载了字幕,这才凑合。这个字幕似乎是shipper(如果你不懂这个词,你肯定不是上面的说fans了)翻译的,里面有不少的批注,比如Scully说"你的执著让我爱上你",他加上了"感动",Mulder答复说"但也正如你所说那也是我们无法在一起的原因",他加上"木头"; 还有后面Skinner拿衣服给Mulder御寒,"同人万岁",哈哈。

TCShell2 1.5.7: Associate .rar/.zip/etc with Total Commander

1.5.7 (2008-10-05)
* Archive associations:
|+ Now you can double click to set the description for an extension
|+ Support jar/xpi/r00/r01 as TC's built-in archive
|+ Refresh archive associations after Apply clicked
- Fixed a bug when restoring old associations
+ Support opening in source/target panel ( /S )

下载:
http://sites.google.com/site/bamanzi/tcshell2/TCShell2-1.5.7.zip?attredirects=0
http://bamanzi.inlsd.org/win32/totalcmd/TCShell2-1.5.7.zip

2008年10月4日星期六

倡议: Debian/Ubuntu用户都来安装apt-p2p吧

装上apt-p2p, 我们就可以在各个用户之间自动传递软件包了,可以有效减轻镜像服务器负担,并减小对单一镜像服务器的依赖。

安装很简单:
  1. apt-get install apt-p2p
  2. 修改/etc/apt/sources.list,将你使用的repos服务器改成localhost:9977,类似下面这样
http://localhost:9977/debian.cn99.com/debian testing main contrib non-free

然后重新执行一下apt-get update就可以了。

2008年9月26日星期五

更新: Dictionary Tooltip支持爱词霸的脚本

更新了一下Dictionary Tooltip支持金山爱词霸网站(http://www.iciba.com)的脚本。不打算支持stardict.org了,网站太慢,开放的词典太少。

Dictionary Tooltip是个Firefox扩展,可以让你双击一个单词就在线去查词典,将结果显示出来(不是新开一页,而是在当前页内显示,可以过滤不相关的内容)。

将以下内容添加到(firefox profile)
/dictionarytip/dictionarytip_dictScript.js尾部即可。

--- 8< --------------------------------------------------------------
dtip_arrDict[19]=
{
dictName : "www.iciba.com",
url : "",
subCatName : " *",
subCatValue : " *",
selectedText : "",
assignUrl : function(selectedText, prefLang)
{

this.url = " http://www.iciba.com/" + selectedText + "/";
this.selectedText = selectedText;
},
filterPage : function (ftDoc, prefLang, strNoResults)
{
try
{
var elemId = "dict_content";

var newDiv = "";
if (ftDoc.getElementById(elemId) != null)
{
newDiv = ftDoc.getElementById(elemId).cloneNode(true);

ftDoc.body.innerHTML = newDiv.innerHTML;
}

}
catch (ex)
{
alert(ex);
}
}
}
dtip_strDictText += ";www.iciba.com"
--- >8 --------------------------------------------------------------
(2008-10-5 更新: 做了补充说明,并修订了一下脚本)

2008年9月20日星期六

推荐的Total Commander工具箱

(以下的东东除了单独注明的外,均可以在http://www.totalcmd.net上找到)

主程序:
Packer 插件:
  • 7z: 不用说
  • mhtunpack: 可打开mht,提取里面的文件
  • chmdir: 可打开chm/hxt,提取里面的文件
  • isoread/totaliso: 前者可解压iso/bin/nrg/img/,后者可解压和制作ISO镜像
Lister插件:
  • scilister: 基于scintilla的文件查看器,速度很快,不能编辑,非常适于浏览代码文件(需要SciTE <= 1.72,并且这个插件要放在scite安装目录中)
  • syn2: 不错的编辑器
  • ieview: IE,用于查看网页
  • imagine: 浏览各种图片文件(如果有irfanview也凑合)
  • fileinfo: 可查看exe/dll/lib等文件的一些信息(PE信息、动态库输出/依赖、LIB输出函数列表)
不要安装太多lister插件,对稳定性和性能多有一些影响,我期望按下F3之后能快速出现内容
其它的lister插件( XML, SynPlus, ICLView, eml, xbaseview)可以安装到外部浏览器UniversalViewer中去

FileSys插件:
  • UnInstaller: 用于卸载程序,控制面板里那个实在让人等得不耐烦
  • Startup Guard: 管理那些自动启动的程序,可禁用或者删除
  • Services: 删除、启动、停止服务
  • ProcFS: 查看运行中的进程,可“删除”进程
  • Virtual Disk: 虚拟磁盘,除了可以虚拟光驱代替DaemonTools,还可以虚拟硬盘、软盘
Content插件:
  • 似乎大多没啥用。常用exifxpiinfo这两个
外部工具:
  • PlugMan: TC插件管理器
  • FavMenu2: 在TC/资源管理器/打开文件对话框 /浏览目录对话框中跳到常用的目录(以及TC中当前显示的目录),常用目录列表缺省读自TC的hotlist
  • UniveralViewer: 可浏览各种文件,支持TC的lister插件
  • F4Menu: 将TC的外部编辑器(F4)设置为此功能,可显示一个打开此文件类型的常用程序列表
  • TCShell2: 可给目录关联一个“在TC中打开”菜单,也可将压缩文件关联为TC打开(后面一个功能为本人添加的,基于TCShell-1.3.6的代码)
我常用的其它插件:
Packer: z, msi-plus, bzip2, deb, rpm, cpio, mbox, diskdir, iclread, nscopy,
Lister: iclview, xml, xbaseview, eml
FileSys: ext2fs
Content: xpiinfo, exif, deb, rpm

2008年9月16日星期二

JavaScript也够魔幻的

可支持按如下方式使用,而且这几个方法不是在一个函数实现中判断arguments.length来走不同分支的,而是可以动态添加方法的——当然,由于JavaScript不是静态类型语言,只能根据参数个数来决定走那个实现,不能根据参数类型
var users = new Users();
users.find(); // Finds all
users.find("John"); // Finds users by name
users.find("John", "Resig"); // Finds users by first and last name
users.find("John", "E", "Resig");
作者说的private members,其实只是在constructor中声明的变量和函数,没有挂到this后面,根据JavaScript的闭包原则,constructor中声明的函数是可以访问这些private变量和函数的,但在constructor之外(比如通过classFoo.prototype.funcB = function(...) {...}创建的方法)的就无法访问这些东西了。所以作者称constructor里面通过this.funcA = function(...) {...}方式添加的成员函数为priviliged method.
  • 属性名一定要满足标识符规定么?
今天一个兄弟项目组的同事碰到一个问题,让我帮忙看看。他在Firebug中看到一个params对象有如下一些属性显示了出来(大致如此)
params
filter[0][data][type]="string"
filter[0][data][value]=2
filter[0][type]="field"
start=0
limit=20
然后他想去取有多少个filter,然后逐一处理。但访问params.filter时出错,访问params.filter[0]时也出错。但上面连数组内各个值都显示出来了啊。

我开始也觉得不可能,但看了一阵,觉得Filebug的显示比较奇怪,为什么它不把filter作为一个成员,再在下面显示数组内容呢? 然后我用for (e in params) { alter(e) }试了一下,发现它有属性就叫做"
filter[0][data][type]"!

这是怎么设进去的呢?
以前看文章说JavaScript中foo.bar=1和foo["bar"]=1是等价的, 当然现在不经过params.filter[0]就直接设置params.filter[0][data][type]="string"是不行的,所以估计是这种方式: params["filter[0][data][type]"]="string"——不过也说明了这两种不是等价的。至于为什么要这么写,据后来另外一个同事说PHP里面可以直接用上这样的数据(我是不懂)。