zt日記

書いているのは Kazuhiro NISHIYAMA a.k.a. ZnZです。
2001|09|10|11|12|
2002|01|02|03|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|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|
2012|04|05|06|09|

この日記にはツッコミを入れられます。 ツッコミを入れたい日付をクリックすると、フォームが現れます。

xreaでtDiaryを使う方法はxrea.com で tDiary を使う方法インストールメモXREA + tDiary + Namazuをどうぞ。


2007年06月01日(Fri)

[C言語] scanf

おまいらは「scanf=セキュリティホール」で思考停止していないか」より。

scanf("%d", &a);でもこんな使い方をするとダメっぽい気がする。

#include 
int main() {
    int a=0;
    do {
        scanf("%d", &a);
    } while (a == 0);
    printf("%d\n", a);
    return 0;
}

2007年06月05日(Tue)

[debian] シェルスクリプトでデーモン

いろいろはまった。

trapしてもフォアグラウンドで子プロセスを動かしていると、そのプログラムが終了するまでtrapで設定したコマンドが動かなくて、start-stop-daemon --stopで止まらなかった。&を付けてバックグラウンドで起動して、直後にwaitを付けて解決した。

stdioを閉じ忘れて、デーモンを起動するときに使ったsshが終了しない。デバッグしやすいように後で付けようと思っていた「exec </dev/null >/dev/null 2>&1」を付けて解決。

枠組としては以下のような感じになった。

#!/bin/bash
PIDFILE=/var/run/hoge.pid
CAUGHT_SIGNAL=""
sig_handler () {
    CAUGHT_SIGNAL="$1"
    # シグナルハンドラ解除
    trap "$CAUGHT_SIGNAL"
    # プロセスグループにシグナルを送って子プロセスも終了させる。
    kill -"$CAUGHT_SIGNAL" -"$$"
    rm -f "$PIDFILE"
    exit
}
case "$1" in
  --fork)
    setsid $0 --loop &
    ;;
  --loop)
    echo "$$" > "$PIDFILE"
    for sig in INT HUP TERM; do
        trap "sig_handler $sig" $sig
    done
    exec </dev/null >/dev/null 2>&1
    while [ -z "$CAUGHT_SIGNAL" ]; do
        sleep 1
        終了しても再実行しつづけたいコマンド &
        wait
    done
    ;;
  *)
    echo "usage: $0 --fork" 1>&2
    exit 1
    ;;
esac

2007年06月10日(Sun)

[ruby] RubyKaigi2007終了

無事帰り着きました。

[ruby] RubyKaigi2007 1日目

朝は早めに出て予想通り道に迷って、9:30をちょっと過ぎた頃に到着。念のため早めに出て大正解。

午前中は後ろの方にいたら電源がなくてIRCに参加できず。開始前にサーバの方のnadokaからはjoinさせておいたけど。JRubyのベンチマークのところで1回目は遅くて2回目以降はJITが効いて速くなっているのでは、とツッコミを入れたかったのに。

昼はrrrな人たちについて行った。

午後は前の方の席で電源ありのところに座れたので、無線LANが切れて再接続した後、FONの認証の画面がなかなかでなくて困っているとき以外はIRCに参加出来た。

IRCはjoinしてる人はたくさんいたけど、発言は一部の人だけっぽい感じだった。まあ、普通のIRCのチャンネルと同じような感じ。

mputさんの話で、1.9系で安定版が出た後のメンテナンスはどうするんだろうとか、ききたかったけど、まだ未定という答えが予想できたのできかなかった。

リファレンスマニュアルは、Ruby/Tkが多いものの1つという件で、懇親会の後などで永井さんとmoriqさんが話をしていて、Ruby独自の部分とクラスライブラリの主な数個ぐらいを永井さんが書けば、後はTcl/Tkの方のドキュメントと数個のドキュメントを元に手伝ってもらえるんじゃないかということを提案しておいてみた。

他にcommitメールのhookスクリプトを公開して欲しいとか、動的生成だと負荷は大丈夫だろうかとか質問しようかと思ったけど、後で聞けばいいかと思っていたら、結局聞きそびれた。

本の宣伝をするときはサインしますというのも言うと良かったのかもしれない。>d(ry とか

[ruby] RubyKaigi2007 懇親会

昼間にトイレの手前に喫煙所があって、体調が悪くなっていたので、ちょっと食事をした後、しばらく寝てた。

適当に名刺交換とか。IRCでお互いに知ってて、相手はこっちを実際に見たことあっても、こっちは知らなかったとか。下手でもプレゼン重要?

[ruby] RubyKaigi2007 2日目

今度はちょっとしか迷わなかった。

まじろう大人気。

FireFoxというところで「(FireFox や FireFOX、FIRE FOX など、多くの人がそうだと思い込んでいるものはすべて間違いです)」を思い出した。

昼はRuby関西の人たちについて行った。マスコット重要、ロゴ重要、勉強会とかもロゴがあった方がいいかも。Ruby勉強会でロゴがあって、関西の勉強会だとそのロゴに関西とついているとか、という案が出た。

GUI FrameworksはRubyCocoaだけ使ったことなかった。

[ruby] RubyKaigi2007

どれもおもしろかった。

速報ログがすばらしい。typoとか気になったらIRCの例のチャンネルで報告すればいいっぽい。

キーワードは「愛」「JavaからRubyへ」(RubyからJavaへ)「やればできるもん」「PS3症候群」「宣伝乙」「MDD」「る」

[ruby] RejectKaigi2007

プレゼンの経験を積むため、前日に急遽ネタを考えて発表。Rabbitのテーマのいじり方がよくわからなくて結局lightning-simpleをそのまま使った。本当は最後のところに入れたロゴをタイトルの方に入れたかったんだけど。

allotted-timeを2.5mにしていたら小数はダメだったのか、亀の動きが遅すぎて参考にならなかった。ネタ自体は早めに終わらせて、RubyKaigi2006やLLのTシャツを着てきている人が他にどのくらいいるのか聞いてみたかったけど、ちょっと時間が足りず。聞いてみるための時間を考慮してallotted-timeは2mにすべきだったと思った。

資料公開: rejectkaigi2007-td2planet

[ruby] るびま本のサイン

そういえば、るびま本のサインは集めるのに挑戦しようとした人はどれくらいいるんだろう?

2日目に既に3名のサインありに追加で書いたのが1回だけで、既に書かれている中にまつもとさんのサインはなかったからコンプリート出来た人はまだいないはず。

本日のツッコミ(全2件) [ツッコミを入れる]

moriq [乙です。]

kiwamu [うっかりしてました... orz 公開資料では Firefox に訂正させてもらいました。]


2007年06月12日(Tue)

[ruby] Re: Duck Typingは大規模プロジェクトでも大丈夫か?

規模に関係なく、メソッド名が一般的な単語なら破綻する可能性があるのではないかと思いました。

例えばsendObject#sendだと期待していてもUDPSocket#sendなどで期待が外れてしまいます。sendの場合は__send__を使えばいいということになりますが。

似たようなメソッドとしてはidに対応する__id__object_idがあります。

他に衝突していそうな名前としてhashを思いついたのですが、URI#以降の部分はfragmentになっていたので標準添付ライブラリの中では問題がなさそうでした。

最近だとpというメソッドの話がありました。


2007年06月14日(Thu)

[ruby] Re: Fiber.loop{|v| ...}

FastCGIとかを連想した。あれはリクエストごとに回るというのでいいけど、Fiber.loopにはなりそうにない。


2007年06月25日(Mon)

[hiki] Hiki 0.8.7 リリース

リリースされていた。

詳細を知った上でJVN#05187780: Hiki において任意のファイルが削除可能な脆弱性とか情報処理推進機構:セキュリティセンター:脆弱性関連情報取扱い:脆弱性関連情報の調査結果とかをみると、この内容だとこういう深刻度なるのかとか参考になる。


copyright © 2001-2013 ZnZ
Key fingerprint = 6E14 2C9C DBD7 874D 8B3C CAA8 9B58 5538 ED7E 1B73