Top | Software | Wiki | Ruby | Tama | Diary

単なる日記 (2002-2)

[最新の日記へ]
Generated by nDiary version 0.9.4

2002年2月4日(月)

. 昨日から休日出勤で会社にいます。 つーか寝ろ。

つっこみなどありましたらどうぞ。メイルアドレスは公開されません。

+ クエストVIII 『攻城戦雑記ギルド戦に関しての様々な解説http://www.zhangweijp.com/rbro/index.htm
+ 本日の予定 『過去ログサイトマップご意見フォームRo最新パッチ http://www.ragnaroklink.com/game/
+ 前衛さん 『リニューアルされた攻撃魔法 http://www.game-fc2blog.com/chaos
+ 前衛さん 『リニューアルされた攻撃魔法 http://www.game-fc2blog.com/chaos


2002年2月6日(水)

. 昨日出勤する際にportupgrade -afを実行させておいたら、 自分でインストールしたApacheのsuEXEC対応版がsuEXEC無し版に入れ替わってて、 Wikiもどきや日記編集用CGIが動かなかった。 とほほ。

. 現在は…、 print/ghostscript-gnuで止まってる。 多分入力待ちなんだろうなぁ。 マシンの動作には影響が無いから、 帰宅してからキーを押そう。

. 押しました。

Ragnarok Online

. プロンテラ南側のマップにて、 人に道を聞かれる。 言葉で説明するより実際に案内した方が良いかと思い案内する。 道中、間違っていたらどうしようなどと嫌な予感ばかりしたけど、 無事到着。 ょぃょぃ。

WAVファイル

. と、裏でRagnarok Onlineをプレイしつつ、 表ではWAV形式のファイルをあれこれするRubyのスクリプトを書き書き。

. まずは、WAV形式のファイルの構造を調べる。 そういえば、過去に何回か似たようなものを書いたことがあるなぁ。 忘れちゃった。 気にしない気にしない。

つっこみなどありましたらどうぞ。メイルアドレスは公開されません。


2002年2月7日(木)

WAVファイル

. 知らん間に日付が変わってた。

module WavFile
  class NotWavFormatError < StandardError
  end
 
  class Chunk
    attr_reader(:id, :size, :data)
 
    def read(file)
      @id = file.read(4)
      @size = file.read(4).unpack("V")[0]
      @data = file.read(size)
    end
  end
 
  def WavFile.read(file)
    riff = file.read(4)
    data_size = file.read(4).unpack("V")[0]
    wave = file.read(4)
    raise(NotWavFormatError) unless riff == "RIFF" and wave == "WAVE"
 
    while not file.eof?
      chunk = Chunk.new
      chunk.read(file)
      p([chunk.id, chunk.size])
    end
  end
end
 
if $0 == __FILE__
  File.open(ARGV[0]) do |f|
    f.binmode
    WavFile.read(f)
  end
end

. とりあえずこんな感じ。 ファイルに含まれているチャンクの種類とサイズを表示します。

. こういうちょっとだけ作って使う場合って、 どこまでクラスにしたりとかモジュールにしたりとかいう判断がなかなか出来ない。 で、今回の目的は「余分なチャンクを取り除く」ということです。 なので、単純に必要なチャンクのみを残して、 ファイルに書き出すだけで終わり、だと思う。

module Wav
  class NotWavFormatError < StandardError
  end
 
  class Chunk
    attr_reader(:id, :size, :data)
 
    def read(file)
      @id = file.read(4)
      @size = file.read(4).unpack("V")[0]
      @data = file.read(size)
    end
 
    def write(file)
      file.write(@id + [@size].pack("V") + @data)
    end
  end
 
  class File
    def initialize
      @chunks = []
    end
 
    def read(file)
      riff = file.read(4)
      data_size = file.read(4).unpack("V")[0]
      wave = file.read(4)
      raise(NotWavFormatError) unless riff == "RIFF" and wave == "WAVE"
 
      while not file.eof?
        chunk = Chunk.new
        @chunks.push(chunk)
        chunk.read(file)
      end
    end
 
    def write(file, filters = nil)
      filters = ["fmt ", "data"] if filters.class != Array
      size = 4
      @chunks.each do |chunk|
        size += 4 + chunk.size + 4
      end
      file.write("RIFF" + [size].pack("V") + "WAVE")
      @chunks.each do |chunk|
        chunk.write(file) if filters.include?(chunk.id)
      end
    end
  end
end
 
if $0 == __FILE__
  wavfile = Wav::File.new
  File.open(ARGV[0]) do |f|
    f.binmode
    wavfile.read(f)
  end
  File.open(ARGV[1], "w") do |f|
    f.binmode
    wavfile.write(f)
  end
end

. 一応いけてるみたい。 今回はdataチャンクとかの中身まで触る必要が無かったから、 手間もかからずに済んだ。よかったよかった。

. でも、ちょっとしたことをやるスクリプトにしては大きすぎないか?(^^;) WAVファイルとかAIFFファイルとかを触る為のクラスとかを書き溜めておく必要があるかな。

Ragnarok Online

. プロンテラの南側にて、他の人にやわらかい毛を売った。 初めての経験だったけど、 先にチャットに入っている人が見本を見せてくれたので、 案外上手くいった。 相手との距離が遠いと「交換可能距離を外れました。」と表示されることを学習した。

つっこみなどありましたらどうぞ。メイルアドレスは公開されません。


2002年2月8日(金)

Opera日本語版

. 会社マシンにOpera日本語版をインストール。

一年戦争記〜君は、生き延びることができるか!?〜

. しゃあるさんトコから。

いわどん一等兵
 太平洋にてゴックに搭乗。デブロック他、敵機5機撃墜。
 帰還したと記録されている。

. 帰還したっぽい。

つっこみなどありましたらどうぞ。メイルアドレスは公開されません。


2002年2月9日(土)

. 目が覚めたら15時過ぎでした。寝すぎ。

誕生日

. age++ おめでとうございます。

つっこみなどありましたらどうぞ。メイルアドレスは公開されません。


2002年2月10日(日)

Cygwin/XFree86

. ふと思い立ったのでCygwin向けXFree86をインストールしてみる。

. インストールは Cygwin を使う。 にある Cygwin 環境の構築:X11を動かす を見ながらやってみた。 感謝。

. で、一通りインストールしたんだけどもXWinが一瞬表示されただけで終わってしまう。 Googleとか2chとかで調べた結果、 一般的な答えは「binary modeでmountせよ」という感じらしい。 その後XWinが立ち上がらない原因自体はフォント fixed を見つけられないことらしく、 /usr/X11R6/lib/X11/fonts/misc/fonts.dirの改行コードをLFのみにすることで解決し、 startxwin.shの実行が成功した。

. ちうことで、記念スクリーンショット。

. startxwin.sh直後

. で、結局binary modeでmountし直すべきなのかな。 このまま使っていって、ダメなら考え直そう。

あの、素晴らしい  をもう一度

. 予約しました。

. ちなみに「空の浮動産」はまだ途中までしか進んでません(汗;)。

つっこみなどありましたらどうぞ。メイルアドレスは公開されません。


2002年2月11日(月)

お仕事

. 休日出勤してます。 というか、今日が祝日であるというのを先週金曜日に知りました。

つっこみなどありましたらどうぞ。メイルアドレスは公開されません。


2002年2月13日(水)

Emacs 21.1

. ports-currentにてインストール。 その他関連ports(apelとかtamagoとか)もインストール。 これでFreeBSDでは新しいEmacsに移行完了。

テクニクビート

. sawadaspecial.comより。

. ゲーセンで遊べるのかぁ。しかもナムコな曲のアレンジ。最高。

つっこみなどありましたらどうぞ。メイルアドレスは公開されません。


2002年2月15日(金)

たまてばこ

. 1.1.65にバージョンアップ。 セキュリティー修正だそうです。

. 先日のパッチをTikiに送らなければ。 帰宅したらやります。

つっこみなどありましたらどうぞ。メイルアドレスは公開されません。


2002年2月18日(月)

ddclient

. ports-currentでインストール。手順は以下の通り。

  1. sudo portinstall net/ddclient
  2. /usr/local/etc/ddclient.confを作る。
  3. /usr/local/etc/rc.d/ddclient.shを作る。
  4. /usr/local/etc/rc.d/ddclient.sh startで動作開始。

. ddclient.confはddclient.conf.sampleを元に作りました。 hn.org向け設定のみ生かしてます。 一部余分な行があるけど直すの面倒だから気にしない。

--- /usr/local/etc/ddclient.conf.sample Sun Feb 17 23:27:13 2002
+++ /usr/local/etc/ddclient.conf    Mon Feb 18 00:32:35 2002
@@ -14,7 +14,7 @@
 ######################################################################
 daemon=300                 # check every 300 seconds
 syslog=yes                 # log update msgs to syslog
-mail=root                  # mail update msgs to root
+mail=don                   # mail update msgs to root
 pid=/var/run/ddclient.pid          # record PID in file.
 #
 #use=watchguard-soho,        fw=192.168.111.1:80   # via Watchguard's SOHO FW
@@ -39,10 +39,12 @@
 #use=ip,                     ip=127.0.0.1  # via static IP's
 #use=if,                     if=eth0       # via interfaces
 #use=web                   # via web
+use=if, if=tun0                    # via interfaces
 #
 #protocol=dyndns2              # default protocol
 #proxy=fasthttp.sympatico.ca:80            # default proxy
 #server=members.dyndns.org         # default server
+#server=members.dyndns.org         # default server
 #server=members.dyndns.org:8245            # default server (bypassing proxies)
 
 #login=your-login              # default login
@@ -102,11 +104,11 @@
 ##
 ## Hammernode (hn.org) dynamic addresses
 ##
-# server=dup.hn.org,               \
-# protocol=hammernode1,            \
-# login=your-hn-login,             \
-# password=your-hn-password        \
-# your-hn-host.hn.org,your-2nd-hn-host.hn.org
+server=dup.hn.org,                 \
+protocol=hammernode1,          \
+login=iwadon,              \
+password=*******           \
+iwadon.hn.org
 
 ##
 ## dslreports.com dynamic-host monitoring

. ddclient.shもddclient.sh.sampleを元にしましたが、 ddclientはperlのスクリプトなので元のままではstopできませんでした。 ちょっと変更しすぎたかも。

--- /usr/local/etc/rc.d/ddclient.sh.sample  Sun Feb 17 23:27:13 2002
+++ /usr/local/etc/rc.d/ddclient.sh Mon Feb 18 00:51:40 2002
@@ -1,19 +1,19 @@
 #!/bin/sh
 
+if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
+    echo "$0: Cannot determine the PREFIX" >&2
+    exit 1
+fi
+
 case "$1" in
    start)
-       if [ -x /usr/local/sbin/ddclient ]; then
-           /usr/local/sbin/ddclient -daemon 300 && echo -n ' ddclient'
-       fi
+       [ -x ${PREFIX}/sbin/ddclient ] && ${PREFIX}/sbin/ddclient -daemon 300 && echo -n ' ddclient'
        ;;
    stop)
-       /usr/bin/killall ddclient
-       echo -n ' ddclient'
+       [ -r /var/run/ddclient.pid ] && /bin/kill `/bin/cat /var/run/ddclient.pid`
        ;;
    *)
-       echo ""
        echo "Usage: `basename $0` { start | stop }"
-       echo ""
        exit 64
        ;;
 esac

. しばらく使ってみます。

つっこみなどありましたらどうぞ。メイルアドレスは公開されません。


2002年2月19日(火)

. ちょっとヘマをしてしまった。とほほ。

つっこみなどありましたらどうぞ。メイルアドレスは公開されません。


2002年2月20日(水)

. M.Kamadaさんの日記を読んで、 みあみいさんの退院を知る。 ご退院おめでとうございます。

つっこみなどありましたらどうぞ。メイルアドレスは公開されません。


2002年2月22日(金)

PuTTY

. 猿丸さんの日記を読んで、 PuTTYを試しました。

. とりあえずバイナリファイルを入手して実行。 しばらく使っていると、 Meadowと同じようにダイアログの文字が化けたり、 キーの入力が一部不能になったりする。 Windows98(会社のお仕事マシン)なのがまずいのかな。 Meadowも自宅のWindows2000上ならなんともないしなぁ。

. Cygwin上で日本語パッチを適用してコンパイル。 しばらくはこれで様子を見よう。

つっこみなどありましたらどうぞ。メイルアドレスは公開されません。


2002年2月24日(日)

Project HeavyMoon

. ふと思い立って、昨日の晩からインストールしてました。 RPMなんてPS2 LinuxKit以来だなぁ。

. ってことで、ようやくmph-getが動かせるようになったので、 覚書。

. インストールは 使い方 にある通り。 今回は念の為にmountを全部解除した上、 /をbinary modeでmountしました。 いつかtext modeで試してみたい。

. /etc/mph.confはこんな感じ。 なかなか動作しないんで、ソースを追っかけながら動かしたら、 $get_commandsの記述の順番が鍵ということが判明。とほほ。

 $keep_local_copy   = false
 
 $get_commands = [
 # 'ncftpget ftp://localhost/usr/src/%s',
  'wget --passive-ftp --non-verbose ftp://ftp.st.ryukoku.ac.jp/pub/ms-windows/%s',
  'ln -s /usr/src/%s .',
 ]
 
 $holds = [
 ]
 
 $directories = [
  "redhat/RPMS/i686",         # for local
  "redhat/RPMS/noarch",           # for local
  "HeavyMoon/rpms/i686",          # for Project HeavyMoon
  "HeavyMoon/rpms/noarch",        # for Project HeavyMoon
 ]

. 会社で試そうかと思ったんだけど、 wgetって Black Jumbo Dog のftp proxy機能には対応していないんだよなぁ。 かといって他のftp関連ソフトが Black Jumbo Dog に対応しているって話も聞かないし。

. 会社では今まで通りsetup.exe使うか。残念。

つっこみなどありましたらどうぞ。メイルアドレスは公開されません。

+ Dane 『Rudy』


2002年2月25日(月)

. 昨日は朝まで起きてて、 夕方まで寝て、 外が暗くなってから出勤。 先程日付が変わりました。

. 日記のCSSをいぢり中。 …面倒になったので、素に戻す。

帰宅

. 仕事中ウトウトしたりしなかったりで、 なんとか帰宅。

. ところで、このサーバへのアクセスが不能になってましたが、 原因はADSLモデムの電源端子からケーブルが抜けかかっていた、でした。 こういうのはもうしょうがないんであきらめよう。

つっこみなどありましたらどうぞ。メイルアドレスは公開されません。


2002年2月26日(火)

PStore

. PStoreのデータベースから取り出したオブジェクトについて覚え書き。

. 同じキーから複数回オブジェクトを取り出した場合、 オブジェクトがStringならば常に同じオブジェクトです。 しかしオブジェクトがクラスならば取り出す度に新しく生成されるため == では一致しません。 なので、オブジェクトをデータベースに格納したり取り出したりするついでに オブジェクトをキャッシュする(?)と、オブジェクトがクラスでも何とかなりそうです。

つっこみなどありましたらどうぞ。メイルアドレスは公開されません。


2002年2月28日(木)

してたま

. \ay antenna でいくつか読みたいページが見つかったので、 自分のアンテナに追加。

. というか、睡眠時間むちゃくちゃ。

つっこみなどありましたらどうぞ。メイルアドレスは公開されません。


色々とリンク:
Google
 
Web moonrock.jp
岩月博之(IWATSUKI Hiroyuki)<don@na.rim.or.jp>
Valid XHTML 1.0 Strict? Valid CSS? Check this HTML!