2011年12月2日星期五

怎样让每章的参考文献重新编号

有 CASthesis 用户问我,如何让每章的参考文献重新编号。其实标准的 LaTeX 宏包中每个参考文献环境 thebibliography 都会重新编号的。CASthesis 的连续编号是由于其中使用了 natbib 宏包。而且 natbib 使用了自己的计数器。因此要重新编号,必须重置这个计数器。具体的命令是

\setcounter{NAT@ctr}{0}

把这个命令放在 \begin{thebibliography} 之前即可。

另外,如果使用的是 BibTeX,那么可以使用 chapterbib 宏包来实现每章独立的参考文献。

2011年12月1日星期四

重新开始写博客

自从 2009 年回国后就很少更新这个博客,很懒是一方面原因 :),另一个原因也是不方便访问,你懂的。

现在找到了解决办法,你懂的。速度还可以,以后争取经常更新。

让 VirtualBox 支持 Windows 7 OEM 激活

在 VirtualBox 中安装 Windows 7/Vista/2008 等一直存在不能激活 OEM 的问题。原因是 VirutalBox 的虚拟 BIOS 无法修改。今天发现已经有高手制作了 VirtualBox 的虚拟 BIOS 修改工具,可以直接导入各种 SLIC 二进制文件,这样就可以直接激活 OEM 版的 Windows 了。

这个工具的名字叫 vbslic,可以在 http://forums.mydigitallife.info/threads/3957-VirtualBox-SLP-amp-SLIC 找到,注意需要和 VirtualBox 版本号一致,已经支持最新版的 4.1.6。

SLIC 二进制文件可以用 SLIC_ToolKit 工具从品牌机的 BIOS 中提取。

2011年11月30日星期三

Windows 2008 R2 做域控制器

今天在一台 Windows 2008 R2 服务器上安装了 Active Directory 域控制器,发现事件记录中有个警告显示磁盘的写入高速缓存被禁止了。刚开始还以为是新买的磁盘就坏了。上网搜索了一下,才知道 Windows 2008 R2 会自动关闭域控制器上的磁盘写入高速缓存,以保证数据的安全。因此可以安全地忽略这个警告。

此外,还有一个类似“WinRM 服务无法创建以下 SPN: ...”的警告,事件来源:Windows Remote Management,事件ID:10154。经过搜索,发现解决方法是:使用 adsiedit 修改相关安全属性,找到 OU=Domain Controllers, CN=ServerName 的安全属性,赋予 Network Service 账号对该对象有“已验证的到服务主体名称的写入(Validated Write to service principal name)”的权限。然后重新启动 WinRM 服务,会发现 WinRM 10154 警告消失(出现的 WinRM ID10149 警告可以忽略)。

2009年3月20日星期五

NTFS文件流引发的麻烦

今天在Windows Server 2003上安装软件时发现,有些安装程序无法运行,弹出错误对话框中显示:
Windows 无法访问指定设备、路径或文件。您可能没有合适的权限访问这个项目。
文件没有问题,在其他机器上可以运行。百思不得其解,难道是系统坏了?

上网搜了一下,发现有些用户反映了相同的情况。有意思的事,有用户说,把文件打包到一个RAR文件中,然后在WinRAR中直接双击运行,就可以运行。我试了一下,果然如此。

有经过大量搜索,终于找到了原因和解决方法:http://x1983.spaces.live.com/Blog/cns!681E958755D46F47!2046.entry

原来是NTFS文件系统的保护作用。只要用右键点击文件,选择“属性”,在弹出对话框的常规项目下方会多出一个安全,描述为:“此文件来自其他计算机,可能被阻止以帮助保护该计算机”,并有一个“解除锁定”按钮,点击“解除锁定”即可。

2009年3月16日星期一

Gmail Notifier 的错误信息

不知道从什么时候开始,我的 Gmail Notifier 就无法显示是否有新邮件,总是出现无法使用的错误提示。今天在网上搜了一下,发现了问题所在,原来是 Gmail Notifier 的一个 bug。只要你在 Gmail 中设置了只能 https 方式来连接,就会出现这个错误。


解决方法是从 Google 下载一个补丁文件,解压缩后双击其中的 notifier_https.reg,确认即可。

2009年3月13日星期五

Debian 的升级

前段时间突然发现 Debian 的安装包的依赖关系出现了问题,今天有时间检查了一下,发现是因为 Debian 的稳定版升级了,从 etch 变成了 lenny。而系统还是 sarge, 而且其中的 source.list 中没有指定具体版本,只是用的 stable,于是就指向了最新的 lenny,导致有些旧的安装包的依赖关系被打破了。把 source.list 文件中的 stable 改为 etch,然后运行

aptitude update
aptitude upgrade
aptitude install initrd-tools

就解决了问题。

然后就顺手把 Debian 升级到了 etch:

aptitude install linux-image-2.6-686
aptitude dist-upgrade
aptitude update

重新启动,发现无法找到根分区。在网上搜了一下,是因为 linux 内核对硬盘分区的命名方式改变的原因。Debian 的帮助文件里给出了好几个解决方法。我用的方法是,用原来的 2.4 的内核启动,中间会有些错误提示,不管他,可以进入系统,然后修改 /etc/fstab 文件,把所有分区的名字由原来的 hdcX 改为 sdaX,这里 X 是从 0 开始的数字。然后重新启动。

然后再把 /etc/apt/source.list 中的 etch 改为 lenny,重新执行以下步骤:

aptitude update
aptitude upgrade
aptitude install initrd-tools
aptitude install linux-image-2.6-686
aptitude dist-upgrade
aptitude update

这样就把系统升级到了最新的稳定版 lenny 了。