バーチャルレゴブロックとクリック募金

バーチャルなブロック遊びをWeb上で実現して、その中で使うブロックはクリック募金eラーニングの成功報酬として手に入れられるようにするようにするのはどうだろう?

 

小学生のころ、親に画面上でブロック遊びができるソフトをねだったことがある。狭い家に住んでいたので、ブロックを散らかせる余裕がなく、ブロック遊びがしたいとつねづね思っていた。

 

そのバーチャルでブロック遊びができるソフトは、あまり流行らなかったと思う。90年代のことだが、当時は新しいソフトに関する主な情報源がパソコン関係の月刊誌だった。そこで大きく取り上げられていないということは、そのソフトがほとんど売れていないことを意味していた。

 

画面上のブロック遊びが流行らなかった本質的な原因を、自分の主観にもとづいて考えると真っ先に出てくるのは、ブロックがいくらでも手に入ってしまい、一つ一つのブロックに実体感が伴わないこと。有限であれば、個々のブロックを記憶することができて、そこでやっと「配置」を考えながら遊べる。

 

アメーバピグニコッとタウンそして往年のセカンドライフは内部に報酬がもらえるアトラクションが作られているので、コインに直接課金しなくても楽しむ事ができる。クリック募金の報酬として捉えるのはいかがだろうか。

 

あなたは、タフな悪漢か、タフな善人のどちらかになるべきだったのよ——大江健三郎『個人的な体験』 : 思索の森と空の群青

自分が大学に入った年に書かれたエントリだけど、ひそやかにコメントしてみます。

大江『個人的な体験』184頁の記述は、自分に重ねながら最後まで読んでいくとすごく嫌な気分におそわれて、絶望感にかられたものだけれど、実はその前でうっ屈した心を晴らしてくれるようなことに鳥(バード)自身がちゃんとふれているんだなあと。すべての体験が「個人的な体験」とはいえないのかもしれないけど、でも「個人的な体験」には出口が無いのかというと、それもちがう(と考えられる)ということを、この作品は示してくれたし、その実感が今自分が生きる際の根本のエネルギーを供給しつづけてくれています。

それだけです。読むたびに、素晴らしいエントリだと思います。

 

MeCab.Tagger の形態素解析結果のフィルタリング

身近に苦戦している人がいたのと、Python Advent Calendar 2013 @ AdventarKWatch さんの記事から知りえた高速化の技を早速使ってみたかったので。

Get only preferred sort of nouns from MeCab.Tagger ...

形態素解析器や正規表現との戦いはかなりの苦労と時間の消費を強いられるので、なるべく早いうちに知識を共有しておきたいところ。

2013-12-14 追記

品詞 ID (上の例なら node.posid で読める)というのがあって、それを使う方が無難かつコンパクトというのを、後輩が話しているのを盗み聞きした。工藤拓さんによる品詞 ID の解説のページによれば、辞書ファイルのある場所に定義ファイルが収められている。IPA 地所を使っている自分の環境の場合、以下のパスにあり、ファイルは EUC-JP でエンコードされている。

/usr/local/lib/mecab/dic/ipadic/pos-id.def

 

EIJIRO dash を最新版の英辞郎ファイルで使用する

Satoshi Numata 氏の EIJIRO dash では、TXT拡張子の辞書ファイルがそのまま使用できます。が、英辞郎と和英辞郎のファイル名が「EIJIRO」「WAEIJI」から始まっていないと両者を読み込まないので、そのようにファイル名を修正したら移行できました。

ソースは EijiroPlugin.m からの以下のコードです。

while (fileName = [enumerator nextObject]) {
	if ([[fileName lowercaseString] hasPrefix:@"eijiro"]) {
		eijiroPath = [[basePath stringByAppendingPathComponent:fileName] retain];
	} else if ([[fileName lowercaseString] hasPrefix:@"ryaku"]) {
		ryakugoroPath = [[basePath stringByAppendingPathComponent:fileName] retain];
	} else if ([[fileName lowercaseString] hasPrefix:@"waeiji"]) {
		waeijiroPath = [[basePath stringByAppendingPathComponent:fileName] retain];
	}
}
辞書の設定方法

ホームディレクトリの「ライブラリ」の中の「EIJIRO dash」の中に新しい辞書ファイルを置きます。Finder では、ライブラリフォルダが不可視状態になっているので、「移動」メニュー -> 「フォルダへ移動」 -> /Users/xx/Library/EIJIRO dash/ と打てば辞書フォルダを開くことができます。

EIJIRO dash を初めて使う場合は、Library フォルダに移動して同名のフォルダを作成しましょう。

英辞郎の収録語数

私は英辞郎の辞書データとしては『英辞郎 第2版』(2005年1月)収録の Ver.81 (131万項目) を使っていました。IT系の専門用語などなどの語彙に不自由を感じてきたので、2013年8月リリースの Ver.139 (193万項目) を EDP から購入してアップデートしました。

Dashboard 上で動作して、10.8.3 でも問題が無いし、軽いしとてもシンプルな使い心地が手放せないです。このソフトがないと英語論文が読めないどころか日常会話も怪しい私です。

// 今度の TOEIC 点数上がってるかな・・・。
2014-01-09 追記:前回より10点、点数が上がってました。6年越しの受験でしたが、何だか嬉しい結果でした。

大域脱出とは

2重以上のループから一息に脱出することをいうらしい。Pythonで、いままで

import time
brk = False

for i in range(200):
    if brk: break
    time.sleep(0.2)
    print i
    for j in range(10):
        if brk: break
        time.sleep(0.1)
        print i,j 
        for k in range(5):
            print i,j,k
            if (i,j,k) == (2,3,4):
                brk = True
                break
        else:
            print "lv3"
    else:
        print "lv2"
else:
    print "lv1"

print "lv0"

とかやってたが、スマートではないのだそうだ。
Rubyでは 大域脱出には catch and throwというのを聞いたので、Pythonではどうなるのか調べて直した。

import time

class END(Exception):
    pass

try:
    for i in range(200):
        time.sleep(0.2)
        print i
        for j in range(10):
            time.sleep(0.1)
            print i,j 
            for k in range(5):
                print i,j,k
                if (i,j,k) == (2,3,4):
                    raise END 
            else:
                print "lv3"
        else:
            print "lv2"
    else:
        print "lv1"
except END:
    pass

print "lv0"

ここで参考にしたページは以下。
Python で for ループを回し切った後に行う処理と、深部からの脱出