July 2009 Archives

我在遠端伺服器上用 qemu 跑了 Windows XP,拿來做些最小程度的開發與測試。摘要做法步驟如下。

準備:

  • windows xp 安裝光碟,但要做成 iso 檔,並傳到伺服器上
  • 伺服器上機裝好 qemu

先準備好一個硬碟影像檔:

qemu-image create -f qcow hd.qcow 4G

然後開機安裝 Windows

qemu -vnc :1 -usbdevice tablet -hda hd.qcow -cdrom cdrom.iso

這時打開 vnc client 連到此伺服器的 display 1 (port 5901),就可以看到這機器正在開機,並且進入 windows 安裝步驟。接下來的不外乎就是按下一步下一步下與步輸入序號等等,從十年前大家就開始重複的事情。

其中 qemu 的參數有個 -usbdevice tablet,需要這參數的原因在於,qemu 在用 vnc 時會有個怪異的滑鼠游標不同步問題。用 vnc client 連進去時會看見兩個滑鼠游標。這時加上這個參數假裝是以絕對座標定位的 tablet,有時就可以解決這個現象。

至於這樣使用好不好用,我想看個人需求。至少我對於不必在自已的 Mac 上跑 Virtual machine 執行 windows 這一點覺得很滿意。

以 perldoc 程式讀文件

| 2 Comments | No TrackBacks

寫 Perl 程式的人不會不知道 perldoc 程式的重要性了。這程式可以讓你在終端機上閱讀 Perl 語言所提供的文件,同時也可以讀 CPAN 模組中所寫的文件。

基本上的常用的用法有:

perldoc 文件名
perldoc -f 函式名
perldoc -q FAQ關鍵字

Implementing "block_given?" in Perl

| No Comments | No TrackBacks

Since I mentioned that it’s quite trivial to implement the block_given? function in Perl, here’s my implementation. It shall be pretty soon, included in the new release of Rubyish.pm.

Two ideas about rubyish perl

| No Comments | No TrackBacks

There are several nice things that I want to port them from Ruby, to Perl, in the Rubyish distribution.

Emulated implicit method invocation

| 2 Comments | No TrackBacks

I just realized how easy it is, in Perl 5, to emulate a implicit method invocation given a ‘$self’ is around:

sub foo {
    my ($self) = @_;

    # make this the same as $self->bar(1, 2, 3)
    bar(1, 2, 3);
}

use PadWalker qw(peek_my);

sub bar {
    # get '$self' from caller scope.
    if (ref($_[0]) ne __PACKAGE__) {
        my $caller_self = peek_my(1)->{'$self'};
        unshift @_, $$caller_self;
    }

    my ($self) = @_;

    ...;
}

Apparently it’ll be nice to have it in Rubyish, and/or self.pm

  • when his/her patches to cpan modules / ruby gems is accepted and released in the very next version. i.e. when his/her name shows up in the changelog of work of others.
  • when somebody sends awesome patches for his/her work to be released for the next version. i.e. when he/she put someone’s name in the changelog of work of his/her own.

this does feels like a positive feedback loop.

在網路上看電影

| No Comments | No TrackBacks

之前在 iPhone App Store 上逛到一個叫做 Jaman 的程式,說是每週可以在 iPhone 上看一部免費的片。到它網站了解一下,才知道他們是在網路電影租售的生意。

週末看了一部免費的電影:快餐車。這部成龍、元彪、洪金寶電影好像久遠到連有線電視電影台都不會播放。雖然廣東話發音跟英文字幕一開始看得有點不慣,不過其實還頂有意思的。反正也不是劇情片,台詞就不必看得太仔細了。

Jaman.com 上的電影租售似乎只打低價市場。沒有最新的片,多半都是幾個月前的片。租是 2.99 元,賣是 4.99 元。跟在台灣租實體 DVD 來比價的話,租價有點偏高,而賣價似乎非常便宜;但影片畫質就無法跟 DVD 比了。有看到一些畫質還不差的,不過應該還不到 HD 的規格。

讀文件

| No Comments | No TrackBacks

開發人員為了將元件整合成系統,都需要花許多時間在讀書、讀文件上。開發 Microsoft 或 Apple 桌面軟體就不用說了,有各式 SDK 文件需要讀。開發 Web Application 也是,有很多網頁規格、標準需要去理解。