2007-05
22

VMware相信大家都耳熟能详,不过估计大家用的都是价值200多刀的VMware Workstation版。 而VMware公司的另一个产品——VMware Server,不收取一分钱费用却能让你实现真正的虚拟服务器。

有关VMware Workstation版和VMware Server版的详细区别请参见 smalldust的这篇文章, 但是你需要知道的一点是,Server并不是为Workstation准备的服务器端 (这和通常意义上的Workstation和Server的概念不同), 两者是完全不同的两个产品。VMware Workstation能运行在2000、XP、Linux等各种操作系统上, 但缺点就是你无法远程控制虚拟机,因此你必须在你自己的电脑上使用它; 而VMware Server则只能运行在2000 Server、RedHat Linux Enterprise等服务器操作系统上, 但你可以远程控制虚拟机,因此你可以将安装在服务器上,虚拟出多台服务器, 以充分利用服务器资源。

我最近部署的一台服务器,单CPU志强3G,2G内存,两块75G SCSI硬盘,OS为RHEL4。 部署的目的是为了做软件测试,显然这样一台服务器仅用做软件测试太浪费了, 因此我通过VMware Server在其上虚拟了四个服务器,以便同时进行四种不同的测试任务。 请注意看下面这张图,这是VMware Server的监控程序,可以看到四台虚拟服务器 总共才消耗了23% CPU和286M内存,远未达到服务器的处理能力上限。 因此通过这个方法可以大大提高服务器利用率。

vmware-server-manager.png

通过VMware Console(下图),你可以远程控制服务器上的虚拟服务器, 就像在自己本机上使用VMware Workstation一样。

vmware-server-console.png

VMware Server可在vmware官方网站上免费下载。 注册用户后可以免费获取最多100个免费的许可证。


2007-05
14

xbeta这篇文章彻底解决了vim在utf-8模式下显示中文字符为半角字符宽度的问题。

在vim中设置 :set encoding=utf-8 后,中文的一些符号会被显示为半角宽度。这时只需

:set ambiwidth=double

即可。感谢xbeta。


2007-03
23

最近公司启用了域,并且代理服务器加上了NTLM认证,只有加入域的电脑才能够使用。 这样一来,虽然IE和Firefox能够正常通过代理上网,但是像FlashGet等不支持NTLM代理认证的 下载工具就没法使用了。

不过今天发现了APS这个工具,它能够帮你进行NTLM代理认证, 使得不支持NTLM认证的工具也能正常使用代理。其方法就是在本地机器上再架设一个不需要认证的代理, FlashGet使用这个代理上网,而APS接收到FlashGet的请求之后,将其加上认证信息,再转发给 真正的代理服务器。

目前最新版为 0.9.9.0.1,下载最新版解压缩即可。它用python写成,需要先安装Python才能正常使用, 推荐使用2.4以上版本。

解压之后修改里面的server.cfg文件,进行以下设置。

# 本地代理的监听端口
LISTEN_PORT:5865

# 实际的代理地址
PARENT_PROXY:172.28.14.3

# 实际的代理端口
PARENT_PROXY_PORT:8080

# 你的机器在域上的机器名
NT_HOSTNAME:<机器名>

# 你的机器加入的域的名称
NT_DOMAIN:<域名称>

# 域用户名
USER:<用户名>

# 域密码
PASSWORD:<密码>

之后打开runserver.bat,修改其中的python路径指向正确的python解释器即可。

运行runserver.bat,APS即在本机的5865端口架设一个代理,然后令FlashGet使用127.0.0.1:5865作为代理即可正常使用。


2007-02
07

Excel默认不支持Unix格式时间戳,这在导入数据时十分不便。可以用以下公式将时间戳转换成Excel格式的时间:

=(x+8*3600)/86400+70*365+19

其中x为时间戳的单元格,8*3600中的8为中国的时区。然后将公式单元格设置为日期时间格式即可。转换结果如下图:

excel-timestamp.png

这个公式的原理:Excel的日期实际上是序列值,它以1900-1-1为1,每过一天序列值加1。 而Unix时间戳是从1970-1-1 0:00:00 UTC开始到现在经过的秒数。用x表示时间戳,可得到换算公式:

x+8*3600                    当前时区的时间(秒)
(x+8*3600)/86400            转换单位为天
(x+8*3600)/86400+70*365     加上1900到1970这七十年
(x+8*3600)/86400+70*365+19  闰年多出来的天数

细心的话你会发现,1900年到1970年共是17个闰年,考虑到Excel将1900-1-1当作1,那么公式最后应该加18才对, 为什么要加19?这是Excel中的一个bug——1900年也被当作闰年,因此应当再多加一天。

另外要注意,在Excel的工具->选项->重新计算中,有个1904年日期系统,如果勾选这个选项,上面的公式应当将70改为66,即

=(x+8*3600)/86400+66*365+19

2007-02
07

今天在解决一个Excel问题时发现Excel中居然有1900年2月29日这一天。众所周知1900年是平年。没想到Excel中还会有这样的bug,真是开眼了。

来看看如何重现这个bug:首先新建一个工作表,在某个单元格输入1900/2/20,然后设置适当的日期格式,然后复制序列,即可发现序列中居然包含1900年2月29日这一天。这个问题会影响到1900/1/1到1900/3/1之间的日期计算和星期计算。

excel-bug.png

微软的官方说明中提到了这个bug,据说是为了某些程序的兼容性问题。可能这个问题是Lotus 1-2-3的bug,微软当年为了跟Lotus 1-2-3抢占市场就做了个完全兼容的Excel,从而把这个bug也一起继承了过来。


2007-01
24

或许很多人已经知道这个插件了吧,Tab Effect。它能让你的Firefox在切换标签时使用类似于Linux下的Compiz的3D效果。看看下面的截图。

tab-effect.png

装上以后感觉原来的设置切换速度有点慢,打开插件目录下 content/javascript.js,寻找这一段代码:

if(TabEffect.currentTab != gBrowser.selectedTab){
    var back = currentTabIndex > gBrowser.mTabContainer.selectedIndex || currentTabIndex == -1;
    TabEffect.xpcomObj.translateToNextTab(back, 24);
    TabEffect.currentTab = gBrowser.selectedTab;
}

将 translateToNextTab(back, 24)中的24改成12,重新启动Firefox,可以看到旋转速度快了许多。不过在切换页面时有明显的延迟,使这个插件减色不少。不过总的来说,这个插件还是值得推荐的,它带来了插件开发的一个新思路。

该最新版本为1.1,仅有Windows版,需要DirectX 8支持。

ps. 如何找到插件目录?我使用的是Mr Tech Local Install,安装该插件之后,在插件管理面板上选中想要查看的插件点右键,选择浏览安装目录就可以了。要是没有安装该插件,那就在 C:\Documents and Settings\用户名\Application Data\Mozilla\Firefox\Profiles\nnnnnn.default\extensions 目录下一个个找吧。


2006-12
05

这篇文章的内容是从一个同事那里学到的,先谢谢他啦。

putty可以很轻易地建立ssh隧道,实现加密代理。 这个方法你需要有一台外部的 sshd 服务器。在自己的电脑上利用 putty 连接 sshd 服务器,建立ssh隧道。

在putty中设置连接时选择左侧的 SSH -> Tunnel,Source port为隧道的本地端口,例如填写1080, Destination留空,下方选择Dynamic,点Add按钮。设置如下图所示。然后连接 sshd 服务器即可建立隧道。

tunnel-setting.png

实际试验时发现0.54版(?)似乎不能正常建立隧道,换成最新的0.58版就没问题了。

然后在浏览器等软件上设置使用 Socks: 127.0.0.7:1080 作为代理就可以了。

整个连接中,(1) 浏览器→putty是非加密的,(2) putty→sshd是加密的,(3) sshd→目的地是非加密的。 (1)是本机连接,不加密也没有问题。(2)的加密会将整个请求加密,也就是说,如果你用浏览器上网, 那么不仅请求的内容,就连请求URL都会被加密。因此关键在于(3)上,只要(3)是一个畅通无阻的连接, 整个连接就是安全的。

具体的使用方法,大家自己慢慢研究吧。


2006-11
22

VMware支持三种类型的网络:NAT,Bridged,Host-only。

NAT

这种方式下,虚拟机的网卡连接到宿主的 VMnet8 上。此时系统的 VMWare NAT Service 服务就充当了路由器的作用,负责将虚拟机发到 VMnet8 的包进行地址转换之后发到实际的网络上,再将实际网络上返回的包进行地址转换后通过 VMnet8 发送给虚拟机。VMWare DHCP Service 负责为虚拟机提供 DHCP 服务。

vmware-network-nat.png

Bridged

这种方式下,虚拟机就像一台真正的计算机一样,直接连接到实际的网络上,与宿主机没有任何联系。

vmware-network-bridged.png

Host-only

这种方式下,虚拟机的网卡连接到宿主的 VMnet1 上,但系统并不为虚拟机提供任何路由服务,因此虚拟机只能和宿主机进行通信,而不能连接到实际网络上。

vmware-network-hostonly.png

2006-11
20

本文参考了这篇文章

VMware是一个简单易用而且十分稳定的虚拟机软件。VMware公司最近公布了免费的 VMware Player, 它能够运行 VMware 制作的虚拟机,但是制作虚拟机就需要花费数千元购买 VMware Workstation。 (当然,破解不在本文讨论范围之内。)好在我们可以运用另一款免费的软件 QEmu 来制作虚拟机, 这样就能够做到完全免费了。

  1. 首先下载 VMware Player并安装。
  2. 下载 QEmu for Windows,并将其解压。
  3. 运行命令行,进入 QEmu 所在的目录,执行以下命令。
    qemu-img create -f vmdk image.vmdk 10G
    create建立虚拟硬盘
    -f vmdk指定虚拟硬盘的格式为VMware
    image.vmdk虚拟硬盘的文件名
    10G虚拟硬盘的大小
  4. 制作配置文件。用文本编辑器编辑一个 image.vmx 文件,内容如下。
    config.version = "8"
    virtualHW.version = "3"
    memsize = "256"
    ide0:0.present = "true"
    ide0:0.fileName = "image.vmdk"
    ide1:0.present = "true"
    
    # CD-ROM配置
    ide1:0.fileName = "auto detect"
    ide1:0.deviceType = "atapi-cdrom"
    # 如果使用光盘镜像,则用以下两行代替上面的两行
    # ide1:0.fileName = "/path/to/foo.iso"
    # ide1:0.deviceType = "cdrom-image"
    
    # 网络配置
    ethernet0.present = "true"
    ethernet0.connectionType = "nat"
    guestOS = "otherlinux"
  5. guestOS的值可按以下方法来配置。
    Windows Server 2003 Standard Editionwinnetstandard
    Windows XP Professionalwinxppro
    Windows 2000 Professionalwin2000Pro
    Red Hat Linux (generic)redhat
    SuSE Linux (generic)suse
    Netware 5netware5
    Netware 6netware6
    Solaris 9solaris9
    Solaris 10 (experimental)solaris10
    FreeBSD (generic)freebsd
    Other Linuxotherlinux
    Other Linux 2.4x kernelother24xlinux
    Other Linux 2.6x kernelother26xlinux
  6. 双击建立好的 image.vmx 即可启动虚拟机。

2006-11
08

Firefox 拥有强大的插件功能是众所周知的,而面对众多琳琅满目的插件, 初学者往往不知道应该如何选择。这里show一下我常用的 Firefox 插件, 一来是给大家提供一点参考,二来是做个备份,重装系统时不必再逐个查找了。

阅读全文 »