No Such Blog or Diary
Rubyでカウンタ作り
- 2005-03-24 (Thu)
- プログラミング
寝すぎて寝れなくなったのでおもむろに Ruby でカウンタを作ってみた.Ruby を選択した理由は単に Perl を使いたくなかっただけ.
そんでさっさと組み上げたわけだけど久々の Ruby で何箇所か引っかかったので挙げてみよう.
- 配列の可変長引数としての展開は method(*array) のように * をつける
- インクリメント ++ は無い ( i += 1と書け )
- CGI 関係は require 'cgi' で (cgi-lib は古い)
- cgi にはオフラインモードがある (ruby -r cgi prcounter.rb みたいに使う)
- 文末にセミコロンいりません
- 文字列つなげるとき + は文頭にかけません.文末に書け
などなど下らないことで時間を食いまくりましたとさ.
記念にできたものはここにおいておこう prcounter-0.10.zip.
ちなみにこのカウンタはひとつの数字に対して複数のイメージを対応付け,それをランダムに選択して表示できるという少々変な機能が付いていたりする.実用上はまったく意味がなさそうだなと思いつつ個人的に欲しかったのでつけてみた.
- Comments: 0
- TrackBack (Close): -
Meadow で文字コード変更
- 2005-03-24 (Thu)
- ソフトウェア ( Meadow/Emacs )
何度やっても忘れるのでここに書いておこう.Meadow での文字コード変更は
C-x Ret f M-x set-buffer-file-coding-system
だ.
- Comments: 0
- TrackBack (Close): -
rsync でバックアップ
- 2005-03-24 (Thu)
- ソフトウェア
サーバのバックアップに SCP で全ファイル転送とかやるのもいい加減あほらしいので ssh を通した rsync でローカルを同期させることにした(さすがに rsh は使いたくない).とりあえず使い方と使いそうなオプションを見てみると
Usage: rsync [OPTION]... SRC [SRC]... DEST
といった感じである.一々コマンド全部打つのも面倒なので使いそうなオプションの組み合わせで makefile を用意.
.phony : put-dry get-dry put get \ put-del-dry get-del-dry put-del get-del default LOCAL=./alldata REMOTE=ls-al@ls-al.jp: OPTIONS=-avzu -e ssh --exclude='*~' --exclude='*.bak' --exclude='CVS' default: get put: rsync $(OPTIONS) $(LOCAL) $(REMOTE) get: rsync $(OPTIONS) $(REMOTE) $(LOCAL) put-dry: rsync $(OPTIONS) --dry-run $(LOCAL) $(REMOTE) get-dry: rsync $(OPTIONS) --dry-run $(REMOTE) $(LOCAL) put-del: rsync $(OPTIONS) --delete $(LOCAL) $(REMOTE) get-del: rsync $(OPTIONS) --delete $(REMOTE) $(LOCAL) put-del-dry: rsync $(OPTIONS) --dry-run --delete $(LOCAL) $(REMOTE) get-del-dry: rsync $(OPTIONS) --dry-run --delete $(REMOTE) $(LOCAL)
get/put で削除なしの同期(REMOTE→LOCAL / LOCAL → REMOTE)で,-del が付くと削除あり,-dry が付くと実際の転送なしで確認となる.
これでバックアップが楽になったぞ(ネットワークの負荷的に)
- Comments: 0
- TrackBack (Close): -
妖々夢ノーマルノーコンクリア
- 2005-03-23 (Wed)
- 遊び
とりあえず,体調不良で今日一日布団の中で完全に死んでいたのだが,食後にすぐ寝るわけにもいかず食後の運動(?)として妖々夢をやってみた.
なにやら体調が悪いときにやるとうまくいくようで,ノーマルノーコンクリア.咲夜さんを使ってのクリアだけど永夜抄と違って妖々夢の咲夜さん強~い.スペカもあと数枚で60枚になるので,そろそろExtraをクリアしなければ.
- Comments: 0
- TrackBack (Close): -
グリチャレ負けた...
- 2005-03-23 (Wed)
- アカデミック?
グリチャレの結果が出た.
とりあえずトップチームのプログラムどーなってんだ? はえぇ!? ペナルティ0.まさに別格ですな(シーケンシャルでも勝てないような).それにしても完走自体が上級は6チーム,初級が9チームと走りきるだけでも大変だったみたい.そんななかで一応走りきれて結果も真ん中ぐらいだからとりあえず最低ラインはクリアとしよう.
うーん,それにしてもこんなに差がつくとは... 反省.やっぱり結果を一度クラスタ内でためるべきだったかな.あとレプリカつかわなくてもよかったような気もする.通信も完全に非同期にするべきだったかなぁ.なんにせよ,どこがネックだったのかちゃんと調べる時間があればなぁ... まあ,予選締め切り一週間前から作り始めたんだからこんなもんか.
並列プログラミングって難しいなぁ.
- Comments: 0
- TrackBack (Close): -
システムコール
- 2005-03-22 (Tue)
- ソフトウェア ( Linux/coLinux )
Linux には strace というシステムコールやシグナルをトレースするコマンドがある.ある種のシステムコールAPIを調べたいときにそれを使っていそうなプログラムに対してstrace をかましてAPIのあたりをつけるのが普通の使い方となる(はず?)
こんなものがなぜ話題に出たかというと,それは実際に使いたい状況になったからで,具体的にはグリチャレで空いているエフェメラルポートを知りたいけどそのためのAPI がわからず,とりあえずポート関係を一通り調べられる netstat に対してトレースをして探そうと考えたから.
で,実際に netstat に使ってみると何の反応も無い.使い方がおかしいのかと思い,他のプログラムに対してトレースしてみるとちゃんと結果が出てくる.結論: netstat は API 使ってない... そんなバカな.netstat が変なコマンドなのか truss の使い方がおかしいのか良くわからんが,結局開きポートを得る方法もわからずなぞは深まるばかりであった.マル.
- Comments: 0
- TrackBack (Close): -