history

青木日記 RSS

<前の日 | この月 | 次の日>

2003-12-26

次の本の宣伝

ちょっと前から次の本を書いてます。 今回は高橋 (征) さんとゆうぞうさんと合同で…… というか、お二人が書いてるとこにぼくが追加で入りました。 『たのしいRuby』の続きみたいな感じで、Ruby のクックブックを書いてます。

題名はいまんとこ『おいしいRuby (仮称)』ということになってます。 ぼくは『Ruby で 194!』 (レシピが 194 個) が断然いいと推薦したのですが、あっさり蹴られました。くそう。 もっともレシピは 194 どころか 275 あるんですけどね。 『たのしい Ruby』サイズで入るのかなあ。

目次はいまのところこんな感じです。キャプションも未定。

  • Rubyの概要
  • 文字列処理
  • コレクション …… Array Hash Enumerable
  • パス操作とディレクトリ
  • ファイル I/O
  • 数値
  • 時刻
  • 環境とのかかわり …… optparse とか etc とか win32/registry とか dl とか、ようするに余りもの全部
  • プロセス間通信 …… パイプとかソケットとか COM とか dRuby とか
  • CGI
  • オブジェクトシステム …… リフレクション系

来春発売予定。たぶん。

Lua

言語仕様とかライブラリの充実度とかは正直どうでもいい。

Lua はロゴがかっこいいので可だ! 以上!

「Lua 5.0 リファレンスマニュアル」

えとせとら 11/5 経由

ruby 1.8 / 1.9 への移行時の注意

  • Linux では --enable-shared したら ldconfig も忘れずに
  • cvs up でアップデートしてると ext 以下に Makefile が残る。消してから make すべし。
  • objdir を分けてるなら毎回全部消して作り直したほうが無難
  • BSD 系では configure --with-lookup-order-hack=INET にしないと drb のテストが失敗する。
  • bison が使える環境では絶対に bison を入れておくべき。 GC の関係でロード速度が段違い
  • configure を作るときは autoconf 2.5x 必須。
  • lex.c も作るなら gperf 2.7 必須 (普通はそんなことしない)

ディスクやりくり

ひらめいた!

  • これまで dpw600au で使っていた CD-R ドライブをメインマシンに移す。
  • dpw600au から (CD-R 焼きに使っていた) セカンド HDD を抜く
  • AlphaStation 500 にさす
  • ウマー

ということで Tru64UNIX がインストールできることになった。

ところで全然関係ないが Google で "alpha station" を検索すると 予想される単語:"alphastation" と言われたりする。

Tru64UNIX 5.1B インストール

対象マシンは digital AlphaStation 500 5/400。 シリアルコンソールを使ってインストールする。

基礎データ

 Digital AlphaStation 500/400 Console V6.9-5
        built on Oct 10 1998 at 14:22:57
 
>>>show config
 
Firmware
SRM Console:    V6.9-5
ARC Console:    4.57
PALcode:        VMS PALcode V1.20-0, OSF PALcode V1.22-0
SROM Version:   V2.05
 
Processor
DECchip (tm) 21164A-1   Pass 1  400 MHz  96 KBytes SCache
2 MB BCache
CIA ASIC Pass 3
 
MEMORY
 
 
Memory Size = 256Mb
 
Bank      Size/Sets   Base Addr     Speed
------    ----------  ---------     -----
00        256Mb/2     000000000     Fast
 
 
BCache Size = 2Mb
 
Tested Memory =  33Mbytes
 
PCI Bus
     Bus 00  Slot 06: DECchip 21040 Network Controller
                                   ewa0.0.0.6.0          00-00-F8-22-65-EB
 
     Bus 00  Slot 09: ISP1020 Scsi Controller
                                   pka0.7.0.9.0          SCSI Bus ID 7
                                   dka100.1.0.9.0         RZ2DC-KA
                                   dka400.4.0.9.0         RRD45
 
     Bus 00  Slot 10: Intel   8275EB PCI to Eisa Bridge
 
>>>show device
dka100.1.0.9.0             DKA100                     RZ2DC-KA  5520
dka400.4.0.9.0             DKA400                        RRD45  0436
dva0.0.0.0.1               DVA0
ewa0.0.0.6.0               EWA0              00-00-F8-22-65-EB
pka0.7.0.9.0               PKA0                  SCSI Bus ID 7  5.57

まず念のためにファームウェアの変数を設定しておく。

>>>set auto_action halt
>>>set boot_osflags ""

特に boot_osflags はちゃんと空にしておかないとインストーラが止まる。

では、Operating System CD-ROM vol.1 (1 しかないけど) を入れて そこからブートする。デバイス名は show device で確かめておくこと。

>>>boot dka400

いろいろ聞いてきた。

  • 国際化するかしないか …… せっかくなので国際化版を入れてみる
  • ルートのパスワード
  • ホスト名
  • タイムゾーン …… Asia/Tokyo
  • 日付と時刻
  • インストールするソフトウェア (all, minimum, custom) …… all
  • インストールするロケール (いろいろ) …… Japanese (1GB くらい)
  • インストールするカーネルモジュール (all, minimum, custom) …… all
  • LSM (Logical Storage Manager) を使うか …… YES
  • ファイルシステムレイアウト (default, custom) …… default
  • UFS or AdvFS …… AdvFS

いつもは最小 or カスタムでインストールするんだけど、 ディスクがちょっと大きめ (8GB) なので強気に出てみた。

時間かかるなあ。

うわっ! Netscape の 4.76 とか入れてるよ! またそんなバグバグなバージョンを……。 せっかくだから CSS バグを体験してみるか?

Java VM を入れてくれるのはいいが、1.3.1 って古いなあ。

Perl 5.8? こいつだけずいぶん新しいような。

I/O error (errno 5) for block(0x2230, 0x2230) on device 255,1

なんか気になるメッセージが出ている。 が、何事もなく終わったので大丈夫っぽい。

root でログインしたら何かメッセージが出てきた。 あーもう、いいかげんメニューはやめてくれないかあ。 シリアル接続だと遅くて遅くて……。

んーと、ライセンスを入力しろと言ってるな。めんどくせえ。 Solaris は何もしなくても全機能が使えたのにー。

む、(ライセンスの) checksum が違うと言われとる。 ライセンスシートに書いてある通りに入力してるんだけどな。

うう、UNIX-WORKSTATION ライセンスがないと言われて 一般ユーザでログインできない。なんだそれは。

/usr/sbin/setup のメニューで出てくる Custom Setup で OSF-BASE OSF-USR OSF-SRV OSF-DEV のライセンスをロードしたら うまくいった。やれやれ。やっぱ Linux にしても NetBSD にしても、 こういうのがないと気楽でいいなあ。 論理的に正しいかどうかだけ考えてりゃいいんだから。

Tru64UNIX 観光日記

おっ、ホームディレクトリが /usr/users/aamine だ。 でも /home も一応あるのな。

デフォルトシェルは当然というか何と言うか /bin/sh だ。 さすがに tcsh とか zsh は入ってないので、とりあえず ksh にしておこう。

何気なく help と叩いたらなんかメッセージが!

$ help
 
The commands:
    man -k keyword      lists commands relevant to a keyword
    man command         prints out the manual pages for a command
are helpful; other basic commands are:
    cat                 - concatenates files (and just prints them out)
    vi                  - text editor
    finger              - user information lookup program
    ls                  - lists contents of directory
    mail                - sends and receives mail
    passwd              - changes login password
    sccshelp            - views information on the Source Code Control System
    tset                - sets terminal modes
    who                 - who is on the system
    write               - writes to another user
You could find programs about mail by the command:      man -k mail
and print out the man command documentation via:        man mail
You can log out by typing "exit".
 
$ which help
/bin/help

へー。

ちなみにデフォルトでプロセスはこんなもん。 フルインストールにしたせいかすごい数になってる。

$ ps -ef
UID         PID   PPID    C STIME    TTY             TIME CMD
root          0      0  0.0 23:01:34 ??           0:05.60 [kernel idle]
root          1      0  0.0 23:01:34 ??           0:00.25 /sbin/init -a
root         23      1  0.0 23:01:37 ??           0:01.67 vold -k -m boot
root         29      1  0.0 23:01:39 ??           0:00.52 /sbin/kloadsrv
root         31      1  0.0 23:01:40 ??           0:00.01 /sbin/hotswapd
root        123      1  0.0 23:01:51 ??           0:00.05 /usr/sbin/esmd
root        134      1  0.0 23:01:52 ??           0:00.01 /sbin/update
root        259      1  0.0 23:01:56 ??           0:00.66 /usr/sbin/evmd
root        299    259  0.0 23:01:57 ??           0:00.60 /usr/sbin/evmlogger -
root        300    259  0.0 23:01:57 ??           0:00.06 /usr/sbin/evmchmgr -l
root        427      1  0.0 23:02:03 ??           0:00.10 /usr/sbin/syslogd -e
root        431      1  0.0 23:02:03 ??           0:00.02 /usr/sbin/binlogd
root        493      1  0.0 23:02:04 ??           0:00.02 /usr/sbin/portmap
root        653      1  0.0 23:02:09 ??           0:00.12 /usr/sbin/sshd2
root        855      1  0.0 23:02:17 ??           0:00.02 /usr/sbin/cpqthresh_m
root        860      1  0.0 23:02:17 ??           0:01.42 /usr/sbin/insightd
root        885      1  0.0 23:02:24 ??           0:01.06 /usr/sbin/config_hmmo
root        887      1  0.0 23:02:24 ??           0:00.77 /usr/sbin/advfsd
root        890      1  0.0 23:02:26 ??           0:00.45 /usr/sbin/sysman_hmmo
root        912      1  0.0 23:02:30 ??           0:00.02 /usr/sbin/cron
root        936      1  0.0 23:02:31 ??           0:00.03 /usr/sbin/volnotify -
root        967      1  0.0 23:02:32 ??           0:00.02 /usr/sbin/volwatch -m
root        968    967  0.0 23:02:32 ??           0:00.03 volnotify -p -f -w 15
root        982      1  0.0 23:02:33 ??           0:00.02 /usr/lbin/lpd
root       1127      1  0.0 23:02:35 ??           0:00.01 /usr/sbin/utxd
root       1143      1  0.0 23:02:36 ??           0:00.01 /usr/dt/bin/dtlogin -
root       1196      1  0.0 23:02:39 ??           0:01.49 /usr/opt/java131/bin/
root       1231      1  0.0 23:02:43 ??           0:02.43 /usr/sbin/smsd -d
root       2096      1  0.0 23:38:14 ??           0:00.01 /usr/sbin/mountd -i
root       2098      1  0.0 23:38:14 ??           0:00.01 /usr/sbin/nfsd -t8 -u
root       2101      1  0.0 23:38:14 ??           0:00.00 /usr/sbin/nfsiod 7
root       2104      1  0.0 23:38:14 ??           0:00.02 /usr/sbin/rpc.statd
root       2106      1  0.0 23:38:14 ??           0:00.03 /usr/sbin/rpc.lockd
root       2169      1  0.0 23:38:16 ??           0:00.04 /usr/sbin/snmpd
root       2171      1  0.2 23:38:16 ??           0:00.05 sendmail: accept -bd
root       2179      1  0.0 23:38:18 ??           0:00.00 /usr/sbin/svrSystem_m
root       2180      1  0.0 23:38:18 ??           0:00.01 /usr/sbin/svrMgt_mib
root       2181      1  0.0 23:38:18 ??           0:00.08 /usr/sbin/pmgrd
root       2182      1  0.0 23:38:18 ??           0:00.03 /usr/sbin/os_mibs
root       2211      1  0.0 23:38:18 ??           0:00.00 /usr/sbin/inetd
root       2212   2211  0.0 23:38:18 ??           0:00.03 -child (inetd)
root       2214      1  0.0 23:38:19 ??           0:00.09 /usr/sbin/cpq_mibs
root       2284      1  0.0 23:38:33 ??           0:00.03 /usr/sbin/xntpd -g -c
root       2513    653  0.3 23:56:15 ??           0:00.27 /usr/sbin/sshd2
root       2541      1  0.0 00:08:03 console      0:00.02 /usr/sbin/getty conso
aamine     2516   2513  0.1 23:56:19 pts/0        0:00.13 /usr/bin/ksh
root       2545   2516  0.0 00:08:17 pts/0        0:00.03 ps -ef

これまで見た中では断突で最大だ。

メモリと HDD はどうなってるんだ。

$ free
/usr/bin/ksh: free:  not found
 
$ vmstat
Virtual Memory Statistics: (pagesize = 8192)
  procs      memory        pages                            intr       cpu
  r   w   u  act free wire fault  cow zero react  pin pout  in  sy  cs us sy id
  3 136  37  13K  12K 3793  195K  39K  59K     0  37K    0  34 212 280  1  1 98
 
$ df
Filesystem        512-blocks        Used   Available Capacity  Mounted on
root_domain#root      786432      207610      566656    27%    /
/proc                      0           0           0   100%    /proc
usr_domain#usr       4300800     1857562     2372208    44%    /usr
usr_domain#var       4300800       29592     2372208     2%    /var
 
$ df -m
df: illegal option -- m
usage: df [-hPeikn] [-t fstype] [file | file_system ...]
 
$ df -h
Filesystem              Size        Used   Available Capacity  Mounted on
root_domain#root        384M        101M        277M    27%    /
/proc                      0           0           0   100%    /proc
usr_domain#usr         2100M        907M       1158M    44%    /usr
usr_domain#var         2100M         14M       1158M     2%    /var

おー、なんか df が見たことのないフォーマットになっている。

vmstat の見かたがよくわからん。 1.3MB ってことはないだろうから、130MB 使ってるのかな? ずいぶんでかいな。

あ、/proc がある。そりゃあるか。

uname

$ uname -a
OSF1 as500.loveruby.net V5.1 2650 alpha

ぐわー、補完、補完がないと生きていけねえ! えーと、ksh の補完キーは…… set -o emacs してから ESC ESC か。 めんどくさいなあ。しかも候補のリストを表示するのが別のキーで ESC = か。 さっさと zsh 入れよう。

$ dmesg
/usr/bin/ksh: dmesg:  not found

え、ないの?

vi のバージョン

Revision: 4.3.23.2 $ $Date: 1996/07/25 12:35:46 $

/usr/ucb はっけん。

げ、Mozilla もあんのか?

$ ls /usr/opt
FSF/          SYSCHECK126/  java131/      obsolete/     ultrix/
OpenGL/       alt/          netscape6/    s5/

いろいろあるようだ。

$ cc -V
Compaq C V6.5-011 on Compaq Tru64 UNIX V5.1B (Rev. 2650)
Compiler Driver V6.5-003 (sys) cc Driver

おおおおお、ccc ガっ! ccc が入ってる! 偉いっっっ!

$ cat hello.c
#include <stdio.h>
 
int
main(int argc, char **argv)
{
    puts("Hello, World!");
    exit(0);
}
$ cc -ohello hello.c
ld:
-ohello: Unknown flag
ld: Usage: ld [options] file [...]
$ cc -o hello hello.c
$ ls
hello*    hello.c
$ ./hello
Hello, World!

ところで、最近の more って逆スクロールできんのね。知らなかった。

ファイルツリーがごちゃごちゃでわけわからん。

$ ls -s /genvmunix
12480 /genvmunix*

だめだ、時間切れ。続きはまたこんどにしよう。

本日のツッコミ(全4件) [ツッコミを入れる]
おやくそく (2003-12-26 16:11)

(仮称)もタイトルの一部でしょうか?

とくめい (2003-12-26 18:00)

ruby に 474! で 474個。2474 で(略)。

(う) (2003-12-27 15:40)

全然知らないで書くと、13Kってのは13K pages、つまり13K * 8192 = 104MB だったりしませんかね。
... あんまりかわらん。

あおき (2003-12-29 16:28)

あ、そうか、ページ数かあ。なるほど。
言われてみると確かにそれっぽいというかそれ以外ない感じですね。
(鈍いなあ俺……)。vmstat(1) で確認しました。

  Virtual memory information:

  act Total number of pages on the active list, the inactive list (pages that
      are allocated but are most likely to be used for paging), and UBC least
      recently used (LRU) list.

  free
      Total number of pages that are clean and available for use.

  wire
      Total number of pages that are currently in use and cannot be used for
      paging (not a real list).

ということで、ページ数だそうです。

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|