!!!独り言日記 !!小説(2006/12/29) 最近、自分自身でも活字離れが激しいというのもあったので(流し読みして内容をあまり把握してない、というクセがついたような気がする)、ものすごいひさびさに小説を買ってきました。内田康夫さんの「貴賓室の怪人」です、探偵ものです。個人的にこの方の小説は好きだったり。 しかし、アドベンチャーゲームで探偵モノが最近めっきり減りましたねぇ。 というよりもアドベンチャーゲーム自身をコンシューマで見ないかなぁ。PCではノベルものは多いのですが・・・。 クロス探偵の続編と藤堂龍之介シリーズを心待ちにしてるのですが、、、出ないだろうなぁ。 今年、自分自身を採点すると仕事としては目標達成でまずまずの出来でした。ただ、プログラムばっかりで作品作りは結局できず。これは来年に持ち越せるかどうか・・・。 後、まだまだ知識が足りないな、というのはいろいろな人にあって思いました。 ただ追いかけても際限ないのでどこまでで線引きするか、割り切るか、ですねぇ。 開発以外のことにも目を向けないと世界が広がらない、ってのも感じましたので、ぼちぼちやってければなぁと思ってます。 それでは、今年も残りわずかではありますがよいお年を。 !!MySQLの 4.1系(2006/12/27) なにやらクラッシュバグがあるみたいでしたので、このサイトのMySQLもついでに入れ替えました。 http://lists.mysql.com/mysql-ja/204 仕事場のもとりあえず入れ替え完了。 !!Windowsにてマウスを含めてキャプチャ(2006/12/26) Windows環境の画面キャプチャを取りたい場合に、マウスカーソルも含めたい、という場合があります(普通のprint screenではマウスはキャプチャされません)。マウスカーソル自身が重要な要素となるマニュアルなどの場合は必須です。 「マウスもキャプチャー」 http://www.vector.co.jp/soft/win95/art/se319379.html にて、マウスカーソル含めてキャプチャできますね。 これでいちいちマウスリソースとキャプチャを合成なんてめんどくさいことはしなくて済みそうです(というか、早めに気づくべきでした(^_^;;)。 Shade 9.0.1のアップデータが公開されています。 http://shade.e-frontier.co.jp/download/901updater.html ちょこざいなバグなどいろいろ直ってそうです。ヘアーとパーティクルもマイナーバージョンアップしている、、、と思います。 後、以下にてプラグイン(SDKじゃないよ)のマニュアルアップデータが公開されています。 http://shade.e-frontier.co.jp/download/9pdfman_plugin.html こそくな手ですが、Shade 9の新機能(ヘアーサロン、パーティクルフィジックス)が気になるけど様子見している、体験版待ち、という方はこれを見ることでだいたいの機能は把握できます(^_^;;。 私のほうでもテクニック的なドキュメントを今書いていたりするのですが(仕事でもなんでもなく)たぶん今年中に公開予定にしています。 !!表現するということ(2006/12/24) 私の場合は、プログラムで「ツール」などを開発することが表現手段になっていたりするのですが、ツールはあくまで道具、それをわかってもらうにはツールを使って作り出した表現物(3DCGなら作品、楽器なら曲とか)が必要になります。 私だったらこう表現したい、してほしい、という妄想があったりするのですが、自分でやりたいのなら自分が表現者にならないといけないのかなぁ、と最近思ったりします。 他の方に頼むのもあるのですが(会社でもその分担をしているのですが)、暇にしてる人なんていないわけですので難しいところです。 そもそもツールというものがクリエイタのための道具ですので「クリエイタ←→開発者」は相互理解の上でモノ造りすべきではあります。 もちろんうまく行くこと自体も難しいのですが、開発者が作り手の気持ちを理解せずに仕様を考えるために「おもしろくないもの、使い勝手の悪いもの」のループから抜け出ることができないことも多いんじゃないかなぁ。これは私自身への戒めも含むわけですが(^_^;;。この部分は、会社で最近マジトークしていた部分だったりします(というか、いつも根底にはこの話題が見え隠れしていたり)。うまくセパレートに役割分担できればいいんですけどね。 来年の目標をそろそろ決めるということで、この部分は指針にしていきたいです。私自身もクリエイティブに近づくように。 私が唯一使い手側に回れるものは、プログラムを作るときに使うライブラリ・SDK・ドキュメントなどがありますね。ええ、いろいろ「こうしてもらいたい」があります(苦笑)。 後、知識としても読み物としても面白い古川享さんのブログ http://furukawablog.spaces.live.com/ の、12/17にてVistaのオフィシャルの文章の稚拙さで突っ込みを入れられているのが面白かったです。文章に関してもユーザ視点で書いてもらわないと困っちゃいますよね。これも、作り手(文章書き)は使い手側に立ってよ、といえる事柄かも(某社のサイトで昔、同じような突っ込みを入れたことがあります。やたら横文字をカタカナ化して使ってるんよね)。 まぁ、気をつけないと文章を書くこと自身も明日はわが身なんですが(^_^;;。日記などで修行しつつ、分かりやすい文章は目指したいです。 作り手側に立つか趣味かはアレですが、Comic Studioを買ってきました。 ひさびさにタブレットを引っ張り出して遊んでます。 !!IPA2006年下期での日記サイト(2006/12/15) 遅くなりました。 IPAでやっていることを公にする準備が整いましたので(了解が取れましたので)、 ちらっと解説します。 テーマは「インスピレーション誘発とリフレッシュ効果を提供するユーザー支援システムの開発」で、高木さん(私の元いた会社の後輩です)と組んでやっております。 [ここがトップページ] http://hbbox.net/ [森海日誌 - 開発者ブログ] http://hbbox.net/diary/ テーマだけではなんのことやら、ですが、メインとなるのはユーザインターフェースです。私が担当するのは、技術方面(バックグラウンド部分)やWin APIのサポートなどで、最近は検索エンジンのアルゴリズムやら大規模データの扱いを掘ってました。 それらについては、hbbox.netの日記で小出しにしてます。 ただ、やることは検索エンジンでもないですし、データマイニングでもなかったりします。どっちかというとサービス寄りの意識が強くて技術はあくまでパセリ、ではあるのですが、やはりカリカリにしないといけないところもあって試行錯誤しながらそのへんを日記に書き溜めていく予定です。 使う言語はJavaとC/C++。WebサービスをAxisで立ち上げて、SOAP(XML <==> XML)で情報をやりとりするのをベースにしています。 3DCGも大規模データを扱うのですが、 検索エンジンとレンダラは技術的に接点があるかもしれません。 MeCabでの形態素解析で使っている「Double-Array Trie」は、もしかしたらレンダラをアクセラレートできるかも(これはIPAプロジェクトとは関係ないですが)。 「探す」という作業を要素数に関係なく引き出せるアルゴリズムですので。 これも要研究ネタですね。でも、このDouble-Array Trieはすごいですよ。 hbbox.netでの日記はft-lab.ne.jpの日記とはまた違った一面でやってきますので、よろしければお読みくださいませ。調べている技術情報は垂れ流してます(^_^;;。 !!格納庫情報の整理(2006/12/14) 長年できていなかったのですが、いろいろ重なるタイミングがあって 来年かけて仕事場の情報格納庫(未公開)とこのサイトの情報をひとつにまとめてリニューアルしようと考えてます。といっても、ビジネスチックになるのではなくてあくまでも今の延長線上での展開です。情報を分散するのは面倒なので 一箇所で公私共にしちゃおうということです。 もちろん仕事の情報は出さないのですが、社内での技術普及のネタ系(教育用)は 出していければと思ってます。 ドキュメント管理用システムを実は社内で作っていただきまして(私が、ではなくて研修で作ってもらったプロジェクトです)いろいろ注文した機能は搭載しています。 特に、私みたいなプログラム&ドキュメントマニアに向いたシステムとなってます。 これに私の知りうる知識(後、個人的に書き溜めているネタ帳)を乗っけていきたいです。 ネタ(移行するものと更新するもの)としては *システム構築 *3DCGプログラミング(オフライン/リアルタイム) *Javaプログラミング *PHPプログラミング *システム構築 *Flash *Shade関連(使い方) *ShadeプラグインSDK(プラグイン開発) *Maya関連(使い方) *物理エンジン関連(ODE/PhysX) *アルゴリズムいろいろ などを予定。といってもすべてある程度の密度にするまでには1年はかかりそうですが(^_^;;。 実際は仕事で使う(使った)技術などもちりばめているのですが(実はこのサイトでも)、うまいこと濃い情報をまとめていければと思います。 しかし、覚えることはいくらでもありますので(際限がないので)そろそろやるべきことを収束させないと、とは思うのですが相変わらず広がる一方です(^_^;;。 仕事の幅としてもいろいろ手をつけると自身のキャパがあっという間にあふれますので、今のうちに社内の他の方に処理を分散できればなぁというのはいつも思ってます。 情報として意外と得にくい(あるにはあるのですがなかなかうまくまとまっていない)というのを私なりにまとめていければと。 今年末には何かしらの形で公開できればと考えてます。 あ、でもドキュメントだけで開発進んでるの(やってるの)?というのはあるとは思われる方もいるかもですが、一応このサイトで書いてる情報はソフト造りのための前調査とか後々のまとめ(健忘録)で書いているものですので、「これ関連の仕事をしてる(ソフトウェアなりを開発している)んだ」と思っていただければ幸いです(^_^;;。 !!Axis(2006/12/13) ApacheSOAPが進化した「Axis」(SOAPの機能を提供)をとりあえずある程度使えるようになりました。 昔々に実はApacheSOAPは仕事で使っていたのですが、Axisで結構仕様が変わってますね。整理された感じで使いやすくなってます。よし、通信はAxisによるSOAPにしよう。 それと、SunのアプリケーションサーバとSun製のSOAPパッケージ(SAAJっていうの?)さようなら。使い方わかんねぇです(^_^;;。Apache製はやっぱり分かりやすいや。 Sunのご本尊が分かりにくいのはいかがなものかと思うのですが、たぶんドキュメントが整っていないのとサンプルにてユーザのほしいことがつかめてないんでないかな、と思います。ApacheのAxisは、ドキュメントを飛ばし読みしてもサンプルソースをいじってればだいたいの機能とできることはつかめました。デベロッパが思うことを分かって作ってるな、と思います。 SOAPはGoogle APIで使用されているので有名ですが、簡単に言えば関数を別サーバに分散して持たせたような感じです。RPCと言って、外から機能を使うわけです。 ほんとに関数を呼ぶ感じで使えます。XMLで通信するのはそれのデータの送受信手段として、ではあるのですが、実際は勝手にXML構造をAxisが作ってくれるので目に触れることはないですね。 しかし、SOAPはインターネットの世界が広まって、ようやく今になって徐々に浸透し始めた、という感じがしてます。 大規模サービスに対してはさすがに個々人ではどうしようもないので、うまいことRPCにて結ばれたというか。 ただ、この手のサービスではクライアントとサーバの同期の問題があるので(クライアントは待たされる)、これの解決手段ってのが私自身の課題かなぁ。自前Socketを使えばなんぼでも解決策があるのですが、HTTPだといろいろ壁が・・・。めぼしをつけてる技術はあるのですが、まだ私自身が追いついてないです。 そういや、Java SE 6が出ましたね。 IPAプロジェクト用の日記を別途書いてるのですが、そこにも技術情報と悩める試行錯誤をちりばめてます(途中経過を逐次報告するという目的があり(それがモチベーションにつながる)、関連情報はすべて公にするつもりでいます)。できればIPA関連はft-lab.ne.jpとは分けておきたいのですが・・・というのをはやいうちに公開したいのですが。。また代表者をつついてみよう。12月入ってからの日記で、方向性ががらっと変わっているのはそっち系のネタです(^_^;;。 !!RAKA - 志方あきこ(2006/12/10) 志方あきこさんの「RAKA」というアルバムを購入。 TVのCMで流れたのを一回見たので気になっておりました。・・・・最近は、週一回はCDを買っているかな(^_^;;。 このアルバムは民族系のフィーリング、といっていいのでしょうか、 アディエマス好きならたぶん気に入るかも。 でも、ゲームやアニメの曲が多いんですね。CD屋のどこに置いているのか探しまくって、ゲームミュージックの棚で発見しました。 たまにはこんな落ち着いた幻想的なのもいいですねぇ。ずっと聴きながら作業してます。「まほろば」がお気に入りです。 mizueで活躍していたらしい、と公式に書いていたので(そこで幻想的な曲をテーマにしていた方がランキングの上位にいた)もしかしたら過去に聴いたことがあるのかもしれません。 秋葉に行ったのですが、Shade9を店頭で見てきました(パッケージと店頭ムービー)。バージョンアップ版があるかと勘違いしてたのですが、店頭でのバージョンアップパッケージははるか昔でなくなってましたね。 一応ユーザではありますので、イーフロストアで注文するかな。でも、年末は結構外に出ることが多くなるので、このような場合って配達では受け取れないんだよなぁ。 ヨドバシで太洋さんがデモってたらしいのですが、見つけられなかった・・・。 というより、ヨドバシのデモ空間ってどこ(^_^;;? !!Sunのアプリケーションサーバ(2006/12/10) 「Java EE 5」の 「Sun Java System Application Server Platform Edition 9.0」を使って 簡単なサーブレットのHelloWorldを作ろうとしたけど・・・、 ドキュメントとサンプルが激しく分かりにくい・・・。 インストールは簡単なんだから(パッケージもまとめてあるんだから) 普及するかしないかはドキュメント次第だと思ったり(というか、このアプリケーションサーバを使ってるところってあるんだろうか・・・昔の1.2時代には実験的なSun製のがあったよね、たしか。それの延長線のものでしょうけど・・)。 しかも、Web上で情報が少ないっす。Tomcatに戻そうかなぁ。 以下を読破するのが手っ取り早いのかな。 http://java.sun.com/javaee/5/docs/tutorial/doc/index.html 分かりやすさでいえば、Tomcatを見習ってほしいところ。 HelloWorldは簡単であるべきです!!後、Servlet版とJSP版のHelloWorldは用意しておいてほしい。 !!LinuxでのJNI(2006/12/07) メモ書き。 ひさびさにLinuxにてJNIのプログラムをあさってます。 gccでJNIの共有ライブラリ(xxx.so)をつくって、 export LD_LIBRARY_PATH=soファイルのあるディレクトリパス:$LD_LIBRARY_PATH を行ってJava ==> CのJNIプログラムを実行したときに Exception in thread "main" java.lang.UnsatisfiedLinkError のエラーが出て実行できず(RedHat9のgcc 3.2.2/J2SE1.4.2 使用)。 java -verbose:jni JNITest みたいに詳細ログを出してみても Exception in thread "main" [Dynamic-linking native method java.io.FileOutputStream.writeBytes ... JNI] みたいに出てよく分かりません。 いろいろ調査したのですが、海外サイトにてヒントが。 「gcc」と「g++」は生成されるバイナリが違うようで、 g++ -shared -O2 -I/usr/local/j2sdk1.4.2/include/ -I/usr/local/j2sdk1.4.2/include/linux/ JNITest.cpp -o libJNITest.so な感じでビルドしたらようやくうまいこと動きました。 よく分からないけど、なんとか解決。 サーバプログラムでは私はJavaが扱いやすいので 愛用するのですが(というよりも、C言語呼び出しの方法を知っているのもあって)、 データベースアクセス、ネイティブなC/C++呼び出しは 楽だなぁと。 ただ、インストールが面倒、多すぎる周辺技術(フレームワークとかライブラリとか)、は便利なようで手間に思ったりします。 SOAPはJ2SEで標準で使えたっけ・・・。これも再度調べねば(昔は別のパッケージだったと記憶してます)。 !!日記の日記(2006/12/05) 私の日記はここと、mixiと、以外にもう1つあります。 IPA関連は別のところに書いているのですが、以下の形態素解析話も そっちに追加しています。もうちょっと整ってから告知予定。 日記だらけだなぁ、、、でも日記って文章力を養う訓練にもなっていいと思います。 ドキュメントを書く仕事も多いのですが、文章力のある人とない人は すぐに見分けがつくというか、、、うまい人はほんとにうまい、逆に苦手なんだろうなという人もすぐ分かったりします。 ということで、文章力は日記でやしなうのもいいかもしれませんね。 最近、ニュースサイトで知った2ちゃんねる発のポエマー姉「サマー」のまとめサイト http://www20.atwiki.jp/chinya/?page=%E5%A7%89%E3%81%BE%E3%81%A8%E3%82%81 これが書籍化されるという記事がITmediaに乗ってたので知ったのですが、 文章がうまいというか関心してしまいました。 読んでて面白い(韻を踏んでいる、オチが卓越、普通じゃ思いつかないような視点とよくわからん世界観?、それを延々と詩として書き溜めている)文章というのは引き込まれますねぇ。 !!MeCabのユーザ辞書(2006/12/03) MeCabは、形態素解析を行うライブラリで速度的にも優秀です。 これはデフォルトで単語登録された辞書(システム辞書)がありますので、そのままでももちろん使えます。 たとえば「今日は雨が降りそうなので傘を持っていった。」を分解した場合は以下のようになります。 [今日] 名詞 / 副詞可能 / * [は] 助詞 / 係助詞 / * [雨] 名詞 / 一般 / * [が] 助詞 / 格助詞 / 一般 [降り] 動詞 / 自立 / * [そう] 名詞 / 接尾 / 助動詞語幹 [な] 助動詞 / * / * [ので] 助詞 / 接続助詞 / * [傘] 名詞 / 一般 / * [を] 助詞 / 格助詞 / 一般 [持っ] 動詞 / 自立 / * [て] 助詞 / 接続助詞 / * [いっ] 動詞 / 非自立 / * [た] 助動詞 / * / * [。] 記号 / 句点 / * ユーザ辞書に登録すると、たとえば「風の谷のナウシカ」と一文であらわしたり、 ということができるようになるはず。また、個々の単語に独自のタグ付け(テキスト割り当て)を行うことが可能です。 しかし、Ver 0.93でユーザ辞書をシステム辞書と別途で作成して、 それをMeCabが認識することができていなかったので、原因を探ってみました。 (※ちょっと日記に書いた文章で間違いがあったので訂正) Windows環境の場合は、SHIFT-JISで扱う場合のバイナリの辞書(ユーザ辞書)は「shift-jis」で吐き出す必要がありました。 もう一点、Windows環境でユーザ辞書を扱う場合に、「MeCab\etc\mecabrc」に 「userdic = $(rcpath)\..\dic\user.dic」みたいにパス追加することでユーザ辞書を認識できるはずですが、これもソースでバグとなる場所があります。 「$(rcpath)」は絶対ディレクトリに置き換えられ「C:\Program files\MeCab\etc」 みたいになります。で「userdic = C:\Program files\MeCab\etc\..\dic\user.dic」 のように扱われるのですが、「tokenizer.cpp」にて 「size_t n = tokenize(buf, ":", _dic, sizeof(_dic));」とセパレータで区切ってるんですよね。UNIX系きめうちですので、これはひっかかります。 でも、動きを見るとその前に「$(rcpath)」の置き換えができてないのが濃厚の予感。 同一ディレクトリを参照するとして、 「userdic = \Program files\MeCab\dic\user.dic」にしたら、 きっちりユーザ辞書に登録されたデータも解析に使えました。 MeCabでのユーザ辞書はどうもその都度一から作り直しみたいなので 速度的に問題になりそう。リアルタイムに「追加」したい、となると・・・ う〜む、辞書構造を解析して自分で作れるかどうか・・・。 単語を学習させるエンジンとしてMeCabを使うのは、ちょっと厳しいのかな。 !!確率・統計の本(2006/12/03) 「確率・統計のしくみがわかる本」という初心者向けの本を買ってきました。 本屋で立ち読みしてたのですが、どれにも「ベイズ」は乗っていました。 おぉぉお、当たり前の理論だったんすね・・・ってことは 私は義務教育で習ってなかったか、たぶん寝てたんでしょう・・・orz 今回確率を使うか使わないかにかかわらず、いずれは必要でしょうから 今のうちに勉強しておく予定。というか、レンダラでのモンテカルロも 確率ではありますよね。 なんというか、分野がまったく違うことをハシゴするのは 散漫になるのであまりよろしくないとは思うのですが、興味ってのは 尽きることがありません。でも、情報なんて無限にあるわけですので、いずれは絞り込んで集中する必要はあるかもしれませんね。 今やっているのは、日本語の構文解析とそれの意味理解です(昔学生時代に研究でやってました)。これらについていろいろ調べているのですが、構文解析自身は 既存のライブラリ(今はMeCab)に頼るのが濃厚ですが、リアルタイムで 単語拡張が可能なのか(学習させる)、その文章自身を理解する必要が 今回のプロジェクトで本当に必要なのか、などなどまだまだ調査段階ではあります。 指針はようやく見えてきたのですが、それの手段としての技術をあさってる、 そんなところであります。 !!似てる技術を探す(2006/12/02) プログラムにてある機能を実現するために、そのためのライブラリなり論文を 探したりするのですが、微妙に目的とマッチしないのは ちとイタいところ。 フルスクラッチでアルゴリズムを考えるか、ひたすら類似技術を探すまたは 応用する道を探すか・・・。 ということで、「果たして可能か不可能か」を調査中。 でも、その前に「ほんとにそんなことする(それをアルゴリズム化する)必要があるの?」という原点に戻って考え直す必要もあるのかもしれません。 うむ、もう一回戻ってみよう。 !!イーフロのニュースDMより(2006/12/01) http://shade.e-frontier.co.jp/9/ichimoku/index.html の「第五回」。 DMより、『中でも「ヘアーサロン」は、Shade 6から搭載されていた「Marimo」を大幅改良したもので』ということで思いっきりネタバレしてますが、 言わんとすることを察していただければ幸いです(方向性としてはファー←→ヘアーなんで真逆ですが)。 ということでご報告。 大変遅くなりましたが、長年の約束を果たすことができたかと思います(2年以上かな、、、)。 休止していたのですが実は水面下で動いていたのです。 いろいろ研究していた技術も投与させていただきました。 みなさんを驚かせたい意味もあってわざと情報公開は控えていたのですが、 これで解放されます(笑)。 裏話をすると、このためにファッション雑誌・美容師さん向けの資料などを集めて 「実際のヘアーデザインではどんな道具必要なのだろう?また、どのようなヘアースタイルのジャンルがあるのだろうか?」という視点から入ってます。 機能の1つ1つは、実は美容師さんのツール(はさみとかドライヤーとかロッドとか)に対応しているものだったりします。 ツールというものは、「3Dのソフトだから」とかで始まるのじゃなくて、 使う人の立場で、という大前提が必要だと思います。というか、思いました。 開発者主体でものごとを考えるのじゃなくて、 使い手側(つまりユーザ)の立場で進化していくべきです。 いずれ「ヘアといえばコレ」なんてなればいいですね。 それを作り上げるのは、開発者じゃなくてユーザ自身だと思ってます。 ・・・いずれはファー(ポストエフェクト)やダイナミクスともリンクすることを願って。 !!IPA 2006年下期(2006/12/01) ということで情報公開。 http://www.ipa.go.jp/ にて、私が共同開発者の立場ではありますが参加させていだたいております。 代表者からの許可をもらってから、どのテーマなのかというのを出すようにします(意に反して、3D関連ではないです(^_^;;)。 本日12/01に顔合わせがありました。いやはや、あれです、「オラ、ワクワクしてきたぞ」の天下一武道会 予選会場のようでした。 みなさんが技術者ということでアツいアツい。 非常に濃いお話(そして私自身勉強になるような話)を聞くことができました。 みなさん、私が思うよりも(おそらく私よりも)研究熱心な方が多いみたいで、 私の話はたいてい理解されてました。 「ベイズ?ああ、あれね。パターン認識?ああ、これね。」って感じ。 後、「この技術はすでに存在するよ」とか学会で出ている技術とか、過去のIPAでの研究内容とかいろいろ教えてもらいました。 IPAのテーマとしては「横のつながりを大事にする」というのもあるらしく、 同じ技術者として「すげ〜」というのも多かった気がしますので(ほか、二次的に産業に発展できそうなものもありました)、このつながりは大事にしたいです。 ちなみに、3D関連の研究をされている方ともお話できました。 私のこと(やってること)はすでに知ってましたね(汗)。 今回は私は裏方に徹しますが、技術(というほどのものでもないけど)に 関しては可能な限りオープンに経過をお知らせできればと思います。 PMにもよるのですが、技術だけではなくて「それを使って何が実現できるのか、世の中に有用なのか」というのも採択基準として大きくなっているのではないか、とも感じました。 アプリケーションを開発するとか、マーケットとしてどのように普及させる算段があるのか、など。