ブログ引っ越しました!
はてなダイアリに引っ越しました。
http://d.hatena.ne.jp/YasSo/
これからもどうぞよろしく。
#今までいただいたコメントを移すことができなかったので、しばらくはこちらも残しておきます。
はてなダイアリに引っ越しました。
http://d.hatena.ne.jp/YasSo/
これからもどうぞよろしく。
#今までいただいたコメントを移すことができなかったので、しばらくはこちらも残しておきます。
出張で東京に来ています。
時間ができたので、柏原研@電通大に行ってきました。
初めは、柏原研の研究ミーティングをパーティション1枚越しに聞き耳を立てていましたが、僕も自分の研究について話をさせてもらえることになりました。他人にじっくりとこのネタ(SBM系)をしゃべったことがなかったので、とてもいい機会に恵まれました。電通大に来る予定ではなかったので特に準備はしていませんでしたが、学生さんのJSiSE全国大会の原稿書きに付き合ったばかりだったこともあって、自分の中である程度考えがまとまっていたようです。いろいろ突っ込まれながらも、最後まで自分の考えていたことがブレなかったことはよかったと捉えています。
柏原先生は忙しくて時間がなさそうだったのに(その上アポなし訪問)、じっくり話を聞いてもらえて、かなり(3時間くらい?)時間を割いていただきました。思いつきにちょっと小理屈を付け足しただけのような、始めたばかりの研究ですが、話をじっくり聞いてもらった上での鋭いつっこみは非常にありがたかったです。
(普段は、その思いつきや小理屈を学生に向かって週に1回しゃべって自己満足するだけ、という研究の進め方になっているので、物足りなかったし不安でもありました。だって学生からは反応がないんだもん…。)
柏原先生は、僕の考えの概念的なところを理解した上で、それを使う人にとってのメリットがわからない、納得できないという感じでした。(←少しぼかして書いています…。実際はかなり明確でピンポイントなつっこみ。)利用イメージ(シナリオ)は考えていたつもりだったのですが、抽象的すぎてわからない、具体的な例を挙げろと言われました。それに対して、具体例をすぐに挙げられなかったのは、今まで考えをきれいにモデル化することばかり考えていたのが敗因でしょうか…。初めに挙げた例ではまったく納得してもらえませんでしたが、最後に挙げた例では、すこしありかな?という感じの表情になっていたので、もう少しじっくりと考えてみます。それとフォークソノミについて、もう一度調査と考察をし直してみる必要がありそう。
柏原研の学生さんたちは、スライドも用意してなくて説明が下手でわかりにくい話だったでしょうに、熱心に聞いてくれました。(しかも研究ミーティングの途中に割り込んだ形だったのに。)具体例を挙げられず、しどろもどろしていたら、自分ならこう使う!みたいな良い例を挙げてくれたり、結構好意的に受け取ってもらえたようで、研究テーマに対する不安が少し解消されました。
柏原先生からも、最後に励ましの言葉とアドバイスをいただきました。なにより、ネタとして悪くないと言ってもらえたことで、これからは自信を持ってこの研究を進めていけそうな気分です。竜先生が、柏原研のミーティングでは、終わった後の学生たちがみんなすっきりした顔をしていて良い雰囲気になっている、と言っていましたが、とても実感させられました。議論の締め方が良いのかなぁ? 細かいところですが、自分が学生指導をするときのヒントも見つかりました。(といっても、今の研究室の雰囲気の中ではあまり効果がなさそうなことだけど…。)
ええと、あらためて、忙しい中貴重な時間を割いて議論して下さった柏原先生に感謝感謝です。そしてこの機会のきっかけを与えてくれた竜先生にも大感謝です。ほんとうにありがとうございました。
(さて、IHのサーベイはしっかりやらないといけないぞ…。)
(っていうか、僕もここの研究室に来たいよう(ボソ))
Mac OS X Server の VPN サービスを使ったら、あっけないほど簡単に VPN (L2TP) が実現できちゃったよ。
すげぇ便利!と思ったけど、iTunes の Bonjour 共有はできないみたい…。うーん惜しい。
OpenVPN, PacketiX (旧SoftEther, 名前とライセンスが変わったらしい), Hamachi なんかだと iTunes 共有ができるっぽいけど、どうなんだろう?
前回の続きです。
Tsearch2 を使ったら、あっさりと Learning Path Finder でシラバスの全文検索ができるようになりました。
http://bavarois.db.tokushima-u.ac.jp/~miyoshi/lpf/ (←β版)
これを本運用サーバの LPF でも使えるようにしようと思い、どこに全文検索用 DB を置こうかと相談したところ、Mac OS X Server 上がいいんじゃない?ってことになりました。
本運用でも FreeBSD だろうという目論見が外れたため、Mac OS X での PostgreSQL + Tsearch2 + MeCab 環境の構築をすることに…。
その Mac OS X Server には fink で既にポスグレが入ってて、Tsearch2 も動いてるっぽい。ってことは、あとは MeCab と pgmecab を入れれば良いということです。
普段 fink を使っていないので、案の定、少しハマってしまったのでメモを残しておきます。
環境
・Mac OS X Server 10.4 (Xserve)
・PostgreSQL 7.4.8 インストール済み (Tsearch2 も動いてる)
方針
・できるだけ fink から
・UTF-8 が使えるように
1. 形態素解析エンジン MeCab (和布蕪) をインストール
(Fink のヘルプページを参考に unstable なパッケージもインストールできるようにしておく。)
$ sudo fink install mecab
$ sudo vi /sw/fink/10.4-transitional/unstable/main/finkinfo/text/mecab-ipadic.info
ConfigureParams: の行を書き換える
ConfigureParams: --prefix=%p --libexecdir=%p/lib --with-dicdir=%p/lib/mecab/dic/ipadic --with-mecab-config=%p/bin/mecab-config --with-charset=utf8
$ sudo fink install mecab-ipadic
2. mecab が動くかテストしてみる
(辞書ファイルの場所がおかしい場合は /sw/etc/mecabrc の dicdir を書き換える)
3. pgmecab をコンパイルするのに postgresql のソースが必要なので make しておく
$ cd /tmp
$ tar jxf /sw/src/postgresql-7.4.8.tar.bz2
$ cd postgresql-7.4.8
$ ./configure --prefix=/sw --docdir=/sw/share/doc --mandir=/sw/share/man --enable-multibyte --enable-recode --with-CXX --without-perl --without-python --without-openssl --with-libraries=/sw/lib --with-includes=/sw/include --without-tcl --without-tk --without-java --enable-odbc --with-pam --with-rendezvous --enable-syslog --with-krb5=/usr
(/sw/fink/10.4-transitional/stable/main/finkinfo/database/postgresql74-unified.info を参考に)
$ make
4. pgmecab をインストール
(pgmecab-1.1を展開しておく)
$ cd ~/Desktop/pgmecab-1.1
$ vi Makefile
次の2行を書き換える
MECAB_CONFIG_PATH = /sw/bin/mecab-config
top_builddir = /tmp/postgresql-7.4.8
$ sudo make install
5. /sw/.../postgresql-7.4 等に入って欲しかったけど、/sw/.../postgresql に入ってしまったので、手作業で移動…orz。
$ cd /sw/share/postgresql/contrib
$ sudo mv pgmecab.sql ../../postgresql-7.4/contrib/
$ cd /sw/lib/postgresql
$ sudo mv pgmecab.so /sw/lib/postgresql-7.4/
$ cd /sw/share/doc/postgresql74-unified/contrib
$ sudo mv ../../postgresql/contrib/README.pgmecab .
(不要になったディレクトリを削除)
$ cd /sw/share
$ sudo rm -r postgresql
$ cd /sw/lib
$ sudo rm -r postgresql
$ cd /sw/share/doc
$ sudo rm -r postgresql
慣れない perl に苦戦しているわけですが、"Bad free() ignored (PERL_CORE)" って警告が出てくる原因がイマイチわかりません…。
perl5.8を入れ直してみようかとportsでコンパイルするとエラーが出るようになるし…。困ったなぁ…。
で、それとは関係なくポスグレのTsearch2 + MeCabを使った全文検索の仕方を忘れないようにメモメモ。
参考にしたのは以下のページ。
https://www.oss.ecl.ntt.co.jp/tsearch2j/index.html
http://www.emaki.minidns.net/Programming/postgres/index.html
---
環境
・FreeBSD 5.4
・PostgreSQL 7.4.13 インストール済み
(/usr/ports/databases/postgresql74-server/)
方針
・できるだけ ports から
・UTF-8が使えるように (中国人の名前とかも扱うので…)
1. 形態素解析エンジン MeCab (和布蕪) をインストール
# cd /usr/ports/japanese/mecab
# make install clean
2. MaCab の辞書を UTF-8 でインストール
# cd /usr/ports/japanese/mecab-ipadic
Makefile.local ファイルを作成し,以下の行を追加
CONFIGURE_ARGS += --with-charset=utf8
# make install clean
3. Tsearch2 をインストール
# cd /usr/ports/databases/postgresql74-server
# make ← work ディレクトリを作るため
# cd work/postgresql-7.4.13/contrib/tsearch2
# gmake install clean ← make だとエラーが...
4. pgmecab をインストール
pgmecab-1.1 を展開しておく
Makefile の以下の3行を修正
MECAB_CONFIG_PATH = /usr/local/bin/mecab-config
top_builddir = /usr/ports/databases/postgresql74-server/work/postgresql-7.4.13
SHLIB_LINK = `$(MECAB_CONFIG_PATH) --libs` -lthr
# gmake install clean ← make だとエラーが...
5. sampledb データベースを作成
% createdb -E utf8 sampledb
6. sampledb に分かち書き関数を登録
% psql -e -f /usr/local/share/postgresql/contrib/pgmecab.sql sampledb
7.sampledb に Tsearch2 を登録
% psql -e -f /usr/local/share/postgresql/contrib/tsearch2.sql sampledb
8. psql で sampledb を開く
% psql sampledb
9. sampledb にテーブルを作成
sampledb=# create table tblSample (intIndex int4, strText text, idxFTI tsvector);
10. トリガの定義
sampledb=# create trigger tsvectorupdate before update or insert on tblSample for each row execute procedure tsearch2(idxFTI, pgmecab, strText);
11. インデックス用カラムに GiST インデックスを定義
sampledb=# create index idxFTI_idx on tblSample using gist(idxFTI);
12. 検索用のユーザ定義型と関数を定義
sampledb=# create type finddoctype as (findindex integer, findtext text);
sampledb=# create function finddoc(text) returns setof finddoctype as ' select findtbl.intIndex as findindex, findtbl.strText as findtext from ( select fromtbl.intIndex, fromtbl.strText from tblSample as fromtbl, to_tsquery(''simple'', replace(pgmecab($1), '' '', ''&'')) as q where fromtbl.idxfti @@ q offset 0 ) as findtbl where findtbl.strText like ''%'' || $1 || ''%''; ' language sql;
登録
sampledb=# insert into tblSample values (1, '登録テスト');
sampledb=# select * from tblsample ;
intindex | strtext | idxfti
----------+------------+---------------------
1 | 登録テスト | '登録':1 'テスト':2
(1 row)
更新
sampledb=# update tblSample set strText = '更新テスト' where intIndex = 1;
sampledb=# select * from tblsample ;
intindex | strtext | idxfti
----------+------------+---------------------
1 | 更新テスト | '更新':1 'テスト':2
(1 row)
検索
sampledb=# select * from finddoc('テスト');
findindex | findtext
-----------+------------
1 | 更新テスト
(1 row)
削除
sampledb=# delete from tblSample where intIndex = 1;
Parallels Desktopとは、BootCampが出た直後に発表されたアレ(?)です。Parallels Workstationとか言ってましたけど、正式版の発売前に名前が変わったみたいです。
http://www.parallels.com/en/download/mac/
BootCampはOSの切り替えができるということで、たとえばWindowsを使おうと思ったらMacOSXは一度シャットダウンしてからWindows XPを起動するわけです。
それに対してParallels Desktopは、VirtualPCやVMWare(使ったことないけど)のようなもので、MacOSXが動いている上で別のOSを動かせます。動かせるOSも、XPだけじゃなくて、古いWindowsやLinuxやFreeBSDとかにも対応しています。
あ、もちろん、BootCampと同じで、Parallels DesktopもIntel Macじゃないと動かないです…。
ちょっと認証系のテストサーバ (Linux) をたてたいなぁということになったので、こないだ公開されたRelease Candidateを試してみることにしました。
Linuxは、debian-31r2-i386-netinst.isoを落としてCD-Rに焼いて準備OK。
Parallels.appを起動して、新しいイメージをDebian Linux用に作ったら、CD-Rを入れて起動。
インストーラの指示に従うだけで、とくにトラブルこともなくインストール完了。あっけない。
あまりにあっさりと動いたので拍子抜けしました。
ちょっとしたテスト環境を作るにはホント便利だと思います。
これは買わせていただきますよ。
公開講座「ホームページ・ビルダー実践講座」がまた始まりました。
今回は資料サイトを用意して挑んでいるのですが、ウェブページを読みながら作業を解説するだなんて不可能じゃねーかということに、やってみて気がつきました…。やっぱり(手元に)紙の資料って必要ですねぇ…。
それと、今回の受講者は結構レベルが高いかもしれないです。今まではパソコンの電源を入れるところからつまづく人(電源ボタンがわからなくて困ってる人)がいたのに、今日は講座の最後までつまづく人がいませんでした。すらすらと解説が進んでしまい、おかげで時間が余ってしまってかなり焦ってしまったということは、受講生のみなさんにはバレバレだったことでしょう…orz。
実はこの講座、すごくネタに困ってるんですよね…。ホームページ・ビルダーの使い方を覚えてもらおうって目的なので、実際に練習として作成してもらうページの内容は何でもいいわけです。文章を長々と書かないといけない内容だと受講者のタイピングスピードの差が出てしまって進行が難しいし、かといってあらかじめ文書ファイルを用意してあげてコピペさせるのはつまんないだろうし…。だけどいまどき「わたしのホームページへようこそ!」みたいな内容だとカッコ悪いよなぁと思いつつ、これといったネタが思いつかないので困りはてているわけです…。
ネタに困ってるのは今度新しく始まる「Flashでアニメーションやプログラミングを学ぼう」という講座でも同じでして、こっちはまだ講座の資料すらできてないです…。欲張って「プログラミング」まで範囲に含めちゃったのですが、正直今は後悔していますw。受講者リストをもらいましたが、なかなかご高齢な方もいらっしゃるようです。まじヤバイ。難しいと思うけど、満足してもらえるように頑張るしかないですねぇ。
今のところ、水に浮かんだアヒルを動かすアニメーションを作るってネタを考えてるんですが、はてさてどうなることやら。
ちなみに、公開講座の資料サイトですが、ホームページ・ビルダーの解説ページなのに別の某ソフトで書いてますw。といっても、僕はHTMLをべた書きするので、ソフトはほとんど関係ないわけですが。それにページの遷移にJavaScriptを使っているのでGoogleなんかじゃ検索されないんだろうなぁw。SEO的には作っちゃいけない見本のような解説ページだなぁw。(PHPで書き直しましたw)
いつの間にか、MacBook Pro のバッテリが認識しないようになってしまいました。
BootCamp が原因かと思ったけど、アップルの Discussion Board を見ると 10.4.6 のアップデートの時に同様の現象が起きちゃった人が他にもいるみたい。(すげえ少ないけど。)
電源をACアダプタから供給していれば普通に使えるので、そのまま気にせず使っていたんだけど、何度か「コードを引っかける → 線抜ける → 電源ブチ切れ」をやっちゃってたら、OSX が起動しなくなってしまいました…。
シングルユーザモードで fsck -f とかでも復旧せず…。でも Windows は起動しやがりますw。
これじゃあただの Windows マシンじゃねえか!!
ヽ(`Д´)ノ
Intel Mac が発売されて、Mac 上で Windows を動かしたい人たちがいろいろと頑張っていたようですが、なんと Apple からデュアルブートを実現するための Boot Camp の Beta 版を公開しちゃいました。
これは試してみないといけないだろうと、早速インストールしてみました。
Boot Camp Beta をダウンロードすると、インストール&設定ガイドの PDF ファイルが入っているので、まずはそれを印刷します。このガイドを見ながら手順通りに進めていけば、そんなに難しい作業ではなかったです。
で、MacBook Pro に Windows を入れてみてわかったこと。
・無線 LAN は今のところ使えないっぽい。
AirMac Card は認識されてなさげ。今後のドライバ開発に期待。
・トラックパッドで右クリックできない。当然2フィンガースクロールもできない。
右クリックするなら USB マウス等をつなげるしかなさそう。
・Windows から Mac OS X のディスクは見えないが、Mac から Windows のドライブは見える。
ただし、NTFS フォーマットだと Mac から書き込みできない。(FAT だと書き込みも OK らしい)
と、これくらい。今のところ気がついたところで致命的な問題はとりあえず無いみたいです。
個人的に思わぬ形で US 配列の Win ノートが手に入れられちゃったので嬉しいです。
MacBook Pro は MacOSX も Windows も非常に起動が速いので、ブートの切り替えはあんまり苦にならなさそうです。
Recent Comments