history

青木日記 RSS

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

2004-04-21

Wikiばな

http://wikibana.socoda.net

第二回 Wiki ばな、二次会だけ参加しようと思います。 予定が合うかな……。

(16:18)

net

net のバグをいくつか直した。

  • net/http: プロクシ + HTTPS が動かなかったのを修正 [ruby-dev:23379]
  • net/http: クラス変数除去
  • net/pop: クラス変数除去
  • net/smtp: SMTP-TLS パッチをマージ

なんか、クラス変数が継承しなくなったことで 単にクラス変数を使わなくなるという結果になってるな。

そういえば、クラスメソッドは継承するけど インスタンス変数は (当然) 継承しないから、 継承したメソッドを使うと困るんだよね。

class A
  @message = 'OK'
  class << self
    attr_reader :message
  end
end
class B < A
end
 
p B.message   #=> nil

これはけっこう嫌だ。 クラス変数にしとけばこういう場合に対処できたけど、 これからはできない。

クラス変数の仕様変更を好意的にとらえるなら、 そもそもクラスに情報をためこんじゃだめってことだろう。 実際、クラスの変数ってグローバル変数と変わらないわけだし。

(18:42)

Gmail

Gmail 自体はどうでもいいんだけど、 普通、メールの 1GB や 2GB くらいはたまるよね?

% du -sh ~/Mail
1.2G    /home/aamine/Mail

(19:04)

Ripper

もーどうしょうもなくなったので Ripper に手を出す。

Moonwolf さんから報告されたバグは思ったより複雑で、 かなりたくさんの要因が複合していた。

  • __END__ に対応していなかった
  • パーサイベント if_tail, opt_rescue, opt_ensure, opt_else, cases などにおいて Qundef が Ruby レベルに露出していた

うう、まだ lib 以下が全部通らないよう……。 嫌な感じだなあ。

~/c/ripper % ./ruby t data
t:8: [BUG] cannot convert ID to string: 327
ruby 1.9.0 (2004-04-19) [i686-linux]

ここで時間切れなので、続きは土曜か日曜になります。

(01:10)

(追記) [BUG] と出ていますが、これを出しているのは Ripper です。

BitChannel / 日本語ページ名 (11) ページ名調査

※ この項はずっと前に書いたんだけど機会を逸して出し損ねていたもの。 メモを兼ねてポストしておく。

各所の Wiki をまわって、 どんな日本語ページ名が使われているか調べている。

通したいページ名

  • 固有名詞全般 (「らぐやねん」「でびるまん」「モナー」など)
  • 一般名詞の組み合わせ (「開発日誌」「変更履歴」「改行コード」)
  • 定番ページ 「〜反応リンク集」
  • 「富豪的プログラミング」

普通の WikiName でも妥協できそうなページ名

  • カタカナだけのページ (「オートリンク」「バージョンアップ」など)

むしろ禁止してしまいたいページ名

  • 「ごあいさつ」
  • 文章そのまま (「○○って使えそう?」「Perl6開発の補助金が底を尽きる」)
  • 無駄な修飾がある (「(仮名)」「など」など)

やっぱり問題は固有名詞だな。 異様にバリエーションが多いうえに自動検出が難しい。

(01:46)

BitChannel / 日本語ページ名 (12)

※ 続き

例のページ名麻雀ルールについて。 思いつきがネタネタしいわりにちゃんと調査してしまった。

まず、以下のように文字種ごとに記号を定義する。

  • H = ひらがな
  • T = カタカナ
  • K = 漢字
  • A = a-zA-Z0-9 (全角含む)
  • ' ' = それ以外

この定義に従ってテキストを [HTKA\ ] の列に変換し、 さらに同一アルファベットの連なりは HHH → H3 と圧縮する。 このとき例えば「大三元 (漢字 3 文字 + ひらがな 3 文字 + カタカナ 3 文字)」 は正規表現 /K3H3T3/ で表現できる。

以上の方法を用いて、 それぞれの役が BitChannel の既存ページに 何件存在するか調査した結果を以下に示す。

  • /K3H3T3/ …… 3
  • /K3H3K3/ …… 1
  • /K3T3K3/ …… 0
  • /K3T3H3/ …… 0
  • /K4H4T4/ …… 0
  • /([KHT]3){3}/ …… 13
  • /([KHT]3){4}/ …… 4
  • /K3[KHT]3[KHT]3/ …… 4
  • /K4[KHT]4[KHT]4/ …… 1
  • /([KHT]2){1}/ …… 3290
  • /([KHT]2){2}/ …… 689
  • /([KHT]2){3}/ …… 94
  • /([KHT]2){4}/ …… 9
  • /([KHT]2){5}/ …… 1
  • /([KHT]2){6}/ …… 0
  • /([KHT]2){7}/ …… 0
  • /([KHT]3){1}/ …… 2369
  • /([KHT]3){2}/ …… 229
  • /([KHT]3){3}/ …… 13
  • /([KHT]3){4}/ …… 0
  • /([KHT]3){5}/ …… 0
  • /([KHT]4){1}/ …… 1830
  • /([KHT]4){2}/ …… 85
  • /([KHT]4){3}/ …… 3
  • /([KHT]4){4}/ …… 0
  • /([KHT]4){5}/ …… 0
  • /([KHT]5){1}/ …… 1349
  • /([KHT]5){2}/ …… 34
  • /([KHT]5){3}/ …… 0
  • /([KHT]5){4}/ …… 0
  • /K4/ …… 277
  • /K5/ …… 48
  • /K6/ …… 18
  • /K7/ …… 3
  • /K8/ …… 0
  • /K9/ …… 0
  • /[KHT]5[KHT]7[KHT]5/ …… 0
  • /[KHT]5[KHT]7[KHT]5[KHT]7[KHT]7/ …… 0

この結果を使って使えそうな役を探すわけだが、 どのような検索結果になる役がよいのかを先に定義しておく。

  • 件数が少ない。役に偶然一致してしまう確率は低いほうがよい。
  • 不自然な連なりにヒットしないほうがよい。不自然な例: 「必然的にこのタイプ」(K3H3T3)
  • 意図的に作るのは容易

試した結果、以下のようなことがわかった。

  • 先頭にひらがなを許すと不自然なフレーズができやすい
  • 漢字・カタカナのみの組み合わせはキーワードになりやすい
  • 短いコンポーネントがたくさん続いているパターンはよくない。例:「検出して表示する機能」(K2H2K2H2K2)

以上の考察の結果、比較的成績のよかったパターンを挙げる。

  • /[KT]3[KT]3H3/ 例:「ローマ字表記にする」
  • /[KT]4[KT]4/ 例:「構造体型チェック」「関連日記アンテナ」

(01:47)

本日のツッコミ(全3件) [ツッコミを入れる]
sugi (2004-04-22 06:19)

「ページ名が日本語である」ことと、
「日本語でWikiページにリンクをはれる」ことは分けて考えた方がいいような気もします。

バージョンアップは VersionUp でも理解はできますが、これが文章の中だと、
日本語の文章の中に突如として英語が出てくるのはやはり不自然であると感じています。

あと、「むしろ禁止したいページ名」で、「無駄な装飾がある」のは分かりますが、
「ごあいさつ」がNGというのは何故なのでしょうか?

MoonWolf (2004-04-22 09:33)

Ripper期待してますw
日本語ページ名はKakasiで分かち書きして2語の組み合わせをページ名にしたらどうでしょう?

*name* (2004-04-23 04:29)

本来の WikiName の発想を逆転して、前後が 2byte 文字で
1byte 空白で挟まれた文字列を、日本語 WikiName としたら
良いのではないかと思うのですが。

名前
メールアドレス

<前の日 | この月 | 次の日>
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|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights res