2008年1月20日星期日

GVim中更改编码方式

最近在学XeTeX+Zhspacing,GVim中需将文件编码在UTF-8与GB2313之间频繁切换,如果单纯变换文本编码则GVim界面中的提示符都成了乱码,故编写一个键盘宏如下:

"" 更换显示编码
"" 2008-01-21
map :set encoding=utf-8:let $Lang="zh_CN.UTF-8"
map :set encoding=cp936:let $Lang="zh_CN"

与物理学同行——读《几何学的故事》

这部数学史写得比较浅显,但前后有些割断,前面主要叙述了几何的一个重要分支——欧几里德几何的发展与非欧几何的诞生,而后面则介绍了近现代物理学与几何 学,特别是非欧几何、微分几何之间的关系。这就需要读者具有比较好的近现代物理学知识,至少对于“黑洞”“弦论”“广义相对论”“色相”等物理学名词不感 冒。
  ========================================================
  下面是我阅读该书的摘录 {}中是随想
  
  P18 泰勒斯主张,借助于观察与推理,人们能解释自然界中发生的一切。——{自然界是服从规律的}
  
  P27 毕达哥拉斯提出区别自己成员的方法,一是不在公众场所小便;二是在别人面前不进行色情活动。——{可见当时社会风俗,当众小便与性行为是很普遍的,蛮荒呀}
  
  P32 欧几里德《几何原本》最重要的贡献是革新了逻辑方法。——{直到今天,这样的逻辑能力仍需要长期训练方能获得}
  
  P33 每一条论断都必须证明,直觉虽然是一种有价值的指导,但必须在证明的大门口得到检验。......许多时候直觉是失败与错误的,而审慎的形式推理将揭示真 理。——{这是现代很多人所不知道的,现在社会过于渲染直觉的重要,造成许多人的盲从。现实多能归化于博弈,而在博弈中审慎的形式推理的作用是绝对性的}
  
  P35 {方形游戏在日常生活中很常见。能发现公平下的微小差别的人方能积累财富——这是《长尾理论》应用几何学的一个很好例子。这种能力大多要求后天培养训练,会计是基石}
  
  P69 所谓“奥卡姆剃刀”,简单地说就是:一个人应该根据尽可能少的假定为创建理论而努力。——{专门有一本书《奥卡姆剃刀》来论述此种思想对于当今社会的深刻影响}
  
  P87 笛卡尔:“我的全部物理除了几何就一无所有了”。——{现代弦论好像也如此}
  
  P98 平行公理与欧几里德理论其它部分的关系难以捉摸,不亚于它的深奥。
  
  P103 没有平行,距离变得捉摸不定。——{应用到人际关系中,只有保持宽容,你和他人的关系方能稳定}
  
  P123 庞加莱直线——圆的任意一段与圆盘的边界相交成直角的弧。——{初看不明确,细想一想真佩服数学家语言抽象能力,一流的数学家必然是一流的文学家}
  
  P124 双曲空间的庞加莱模型是一个实验室。在这个实验室里,容易发现某些不寻常的定理和性质,这些定理与性质是早先研究过的数学家极不容易揭示出来的。
  
  P128 微分几何是曲面的理论。......高斯指出:一个曲面可以看成本身就是一个空间;二是一个给定空间的弯曲程度可以只在曲面本身上加以研究,而与一个可能包含它或者可能不包含它的较大空间无关。
  
  P137 黎曼说明了如何把球面解释为一个二维的椭圆空间。
  
  P139 {吹起来的呼啦圈,看来世间许多事务都在黎曼几何上,而非在欧式几何上}
  
  P142 避免由于措词有限而导致循环论证的唯一方法,是在这本词典中容纳一些不加定义的术语。.......数学系统也容纳了一些不加定义的术语,并寻求为了使系统有意义所必需的最少术语。
  
  P177 爱因斯坦:“一个人为了考试,必须把所有这些资料都塞入大脑,不管这个人愿意不愿意。这种强制手段对我有这么大的威慑作用,以致我在通过期末考试以后的一 整年的时间内,发现自己考虑任何科学问题都兴味索然。”——{真知灼见,看来爱因斯坦也为“应试教育”而苦恼过}
  
  P210 爱因斯坦:“当一个无识别能力的高度近视的人从地球表面走过时,他不会意识到他走过的轨迹路线是弯曲的。我为发现这一事实而感到十分幸运”。

2008年1月8日星期二

Cterm的自动登录

采用Cterm的默认自动登录方式,不能跳过BBS前面的“十大”等页,所以根据BBS特点,修改自动登录过滤器如下:(当遇到/则执行/说明)
1.请输入帐号 %U\n 输入帐号
2.请输入代号 %U\n 输入代号
3.请输入密码 %C\n 输入密码
4.上次连线时间 \n\n 跳过连线时间页面
5.继续 \n 当遇到继续时都默认跳过
6.好朋友列表 q%e 跳过在线好友页面
7.主菜单 %e 停止在主页面上
8.主选单 %e 停止在主页面上

这样登录就“清爽”多了。

2008年1月7日星期一

Acrobat安装20225问题的解决方法

今天安装Acrobat时遇到20225问题(如图所示),这样就无法使用Acrobat PDF Printer功能。同实验室的也遇到这个问题,解决方法是:
1.修改Windows系统的Path环境变量。
打开“我的电脑-属性-高级-环境变量”,找到Path一栏,复制保存Path栏中的字符串,然后在该字符串的最前面填入
SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;
2.重新启动计算机
3.重新安装Acrobat,这时就不出现20225问题了
4.最后将保存的原始Path字符串再复制回去
Posted by Picasa

2008年1月6日星期日

TotalCmd中F4呼唤Vim

TotalCmd中F4呼唤Vim的命令如下:
D:\Program Files\gvim.exe -p --remote-tab-silent
这样只打开一个Vim,且不同文件在不同的Tab中。

2007年12月13日星期四

MikTex's FNDB

阅读MikTex帮助文件——“为了加速文件搜索,MikTex使用一个已知文件列表来搜索文件。该列表称为 file name database(FNDB)。强烈建议当你在TEXMF目录中添加或删除文件后,用MikTex提供的工具来刷新一下该文件列表。”郁闷,并没有告诉我怎么通过命令行刷新这个文件列表。

2007年12月5日星期三

Windows脚本技术

Windows与Unix/Linux所不同的根本所在是设计目的,前者为非专业人士设计,图形界面(GUI)是根本;而后者则关注功能实现,命令行(Console)才是根本。所以在Unix/Linux上脚本编写是件很容易的事,但到了Windows上则成难事。其难有三:一则Windows中大部分软件都是基于GUI的,你很难用命令行将其“串联”起来;二则Windows中脚本多要涉及COM等概念,对于Windows的结构体系要有很多的了解方能“游刃有余”;三则MSDN中虽然有相关的脚本介绍,但比较分散,没有系统性,样例程序又很少,这给学习与使用带来很多问题。

我近日要解决一个问题,能自动将某个Zip包中的多个PDF文件解压后分解成页,筛选掉重复的页然后再合并成一个PDF。原以为在两日内就能完成的脚本程序,竟用了一周的时间。现在将其间的思考与经验进行总结:

1.在Windows中有四类脚本。

(1)命令行,就是Windows自带的一些命令,如for等,这些命令可以构成最简单的批处理,特别是For命令,使用得当会起到事半功倍的效果。比如要将某个文件夹中所有的.htm文件后缀名修改成.html,用rename *.htm *.html是不行的,可以用 for %i in (*.htm) do rename %i %il 来实现。如果要将for命令写入BAT文件,则应该为 for %%i in (*.htm) do rename %%i %%il 。

(2)WSH脚本,这是Windows中最常用的一类脚本,也是Windows平台内置的最强大的脚本系统。WSH,即Windows Script Host,其基于COM技术框架,可调用Windows平台内嵌的几个强大的COM对象,最常见的是“WScript.Shell”,“Scripting.FileSystemObject”,“ADODB.Connection”“ADODB.Command”,熟悉COM编程、ASP的人应该对此不陌生。其优点在于可以用VBS或JS等比较高级的语言来编程而不仅仅是命令行的累积。其缺点是调试很困难。
由于其与COM的内在联系紧密,所以有时人们会在BAT文件中临时创建一个VBS文件,然后调用该VBS文件以实现BAT所无法实现的功能,其基本结构如下:

@echo. >>sample.vbs ::创建一个sample.vbs文件,并写入一个空行
@echo WScript.Echo "Hello,WSH World">>sample.vbs ::这里将vbs中的代码写入文件中
.......
@echo. >>sample.vbs ::再写入个空行
@cscript //I //nologo sample.vbs ::调用该vbs脚本
@del sample.vbs ::删除该脚本

(3)基于动态语言环境,如Python,Ruby等。这样的动态语言一般都有与平台交互的对象库,通过动态语言来编写程序,易于调试与OOP化,复用性高,健壮性强,移植性好。但其要学习一门动态语言有些难度,而且对于一些临时性的简单工作也显得“大材小用”。如果要编写一些最常用且要不断修改的程序,基于动态语言是首选。

(4)一些特殊的自动化程序,如AutoIt,AHK(Auto Hot Key)等。这些软件其实就是一个解释器,可以将你编写的脚本进行解释运行。由于它们是完全面向Windows编写的,对于Windows的GUI支持的很好,而且有很强大的辅助编写脚本功能(如将鼠标动作录制成脚本等)这样就极大方便了GUI的自动化。所以如果面对许多GUI操作时,这类脚本当是最好选择。当然由于这些脚本语言具有一些特定性,在编写时仍需要熟悉其函数库;而且这些脚本是与Windows紧密相连的,其无法像动态语言脚本那样可以简单地移植到其它平台上。