休息 - それは次に飛翔するための準備か
XP 祭りを始めとして色々とイベントがあったようですが、申し込み忘れていたので参加せず。
[topic:Haskell]
ここ三日間、安定を考えて update を控えていた色んなライブラリを更新して見ました。
HSQL はちゃんと GHC-6.4 に追随し cabalize した上で sqlite3 を使えるようにしているのですが、なぜか autoconf を完全に捨てていてを使う Database ごとに個別にインストールしなければならなくなっているのと、SQLite とかで何も考えずに Windows 環境でも pkg-config 呼び出してライブラリのあるディレクトリを探そうとしているのがちょっとよくない感じ。せっかく DLL から .a を取り出すために mingw32lib というディレクトリを用意しているんだから、そこにヘッダとライブラリを入れさせて貰いたいよね。
HaskellDB は CVS HEAD が HSQL の最新版に対応しているのだけど、その部分の cabalize の仕方まで同じで HSQL でバインドされている Databace を使おうとすると最低 3 回インストールする必要があるのがよくない感じ。 ./configure で使う Database の種類を全部洗い出してライブラリを作るというやり方じゃないので、genericConnect が使えなくなってるし。
GHC-6.4.1 の RC は 既に6月4日付けの GHC 6.4.1 に乗り換えているため GCC-4.0 がまだ使えない Windows では決め手になるような変化はないのものの、MSI パッケージ内の MinGW が切り替わって gcc が 3.4.2 に上がっていたのを見つけたので良い機会だと思い自分のも MinGW 4.1.1 に上げてみたのですが、これが間違いだったのかもしれません。以後タイトルにあるエラーに悩まされることに。結局、それぞれのバージョンを戻しても最後まで Bitmap のサンプルで上記のエラーが出るようになってしまったのは変わりませんでした。以前 FFmpeg のバインドでダイレクトに画像を wxHaskell で表示できていたのが、多分 GHC のバージョンを上げたのが原因で表示できなくなってあのときもバージョンを戻しても元に戻らなかったけど……どうしてかな? まあ自分でビルドして使ってもいえないし、新しいインストーラーに入っているものが影響を及ぼすのなら常にそれに対応させておく必要はあるのですが。それだと Windows も XP に移行させた方がよいかもしれませんね。多数が XP 使っている中で 2000 のみで出てくるらしいエラーに悩まされることも多々あるし……。また、色々とやっている過程で GHC-6.4 を入れてみたのですが、これでも同じくいくつかのサンプルで上記のエラーが出ました。大体 Mac でもエラーが出ているもので終了したので GHC-6.4 ではうまく動かないということなのかもしれませんが、そのとき MinGW が新しいバージョンだったので確証はありません。詳しく調査しないと原因が突き止められないけど、Windows のマシンが他にないのでこれだけで取られてしまうわけにはいかないし、今回のパッケージに GLUT と readline が入ってなかったというミスがあったため新しい build でパッケージが更新されると思うし、疲れたので今回はこのあたりで終わります。
というような紆余曲折を経て、今は9月2日(ただし MinGW 3.1.1 を使ってビルドしたもの)のものを使っています。別のエラーが TwoSER でも出るようになってしまうのですが、サンプル Bitmap そのものにはエラーがでるものの Bitmap 自体を扱うことはできるし wxHaskell を使った他のアプリケーションには今のところ問題が出てないようなのでまあ使えないことはないと思って。このバージョンでは Cabal の新しいバージョンがマージされた内容なので、Windows でも無事 exe ファイルをインストールできます。ただ、MSI (22日)版では runhaskell (or runghc) からビルドしようとしたらエラーが出てたし、今度は(Haskell 以外の)外部のライブラリや c のソースのあるディレクトリをうまく使えないという微妙なバグがあるようですが。
やっぱり glasgow-haskell-* とか Libraries とかの Mailing-List にも入っておいた方がいいかなぁ。
民主党は確か郵政民営化に関して対案を持っていたり、天下りの禁止を掲げてたりするはずなのに、そうしたカードを全く切ってこないように見えるのが戦略ミスなのか、情報操作のせいなのか、気になる。
伝え方が悪かったのか、それとも今丁度作業しているから入れれないのか、FilePath への patch の一個目は適用してもらったんだけど、その後 joinFileName の新しいコードに入った bug に気づいて送った patch が適用されない。あまり目立った変更でないし、修正点がきちんと伝わってないのかな? darcs だし、こちらで repository を用意しても良いんだけど……。
今日は RHG 読書会でした。RWiki を含めてアナウンスが全然なかったおかげで、前回に比べて今日は人が全然いませんでした。るびまだけでは告知効果が薄いみたいですね。
今日は投票日、その後 PofEAA 読書会第6回でした。
自己紹介で、現在はフリーなのでどこかで Kahua や Haskell をなど関数型言語を使って XP で仕事ができないかなという風に言っていたので、飲み会でタイムインターメディアがいいんじゃないのと言われたのですが、XP をやっているチームと Kahua のチームは違うし Kahua で稼いでいるという体制に入っていないのでそこが悩みどころです。Haskell で XP をやることに関しては、ペアプロ自体やりたいし、関数プログラミングでは Refactoring をやることが日常茶飯事だしRefactoring Tool もあるし、副作用がないので関数の定義が正しければ絶対に正しいのでついついテストをサボってしまうものの、HUnit や QuickCheck もあるのでやろうと思えば導入できないこともないし、ということを考えればあといくつか増やすだけなので全然問題なく導入できると踏んでいるのですが、一緒にやってくれる相手がいないのでできないという悩みどころが……。
人数が多い上に開始時間が押してたためものすごく短い自己紹介にしてつっこんで話さなかった話題として、ポジションペーパーには大学院に行くことを考えているため学費を稼がないといけないということを書いていたのですが、3月まで本業であった方に行くのを目指すべきか、Ph.D Student および PostDoc として海外で Haskell または Clean のプロジェクトをやるという道を開くためにとりあえず Computer Sciense の修士に行っといて経歴をつけるべきか迷うんですよね。後者はそっちの勉強をしてきたわけじゃないので特に勉強しないといけないし。もちろん両方行くという選択肢もあるけど、それは気の長いプランですし。
関数型言語の立場で参加したので、「AOP で制約を守らせたまま関数の振る舞いを追加するのって、C++ で Template を使えば policy クラス(コンセプト)で表現できるし、それはつまり関数型言語の文脈だと振る舞いの制約=型だから(高階関数の)型が同じであることさえ守らせればそれだけで表現できる。」とか、関数型言語には「Lisp や Scheme などのメジャーなものだとインハウスでツールを取り揃えているからある程度仕事をした企業内だとそれらを使えるので本当に高い生産性を発揮できるのだろうけど、公開されてないので外にいるとその恩恵を受けられない」や「Haskell のように比較的新しいものだと数が少ないし全然ライブラリが枯れてない」といったライブラリがあんまり充実していないことによる悩みがあるのでついライブラリ作りの方に情熱を燃やしてしまうとか、 Software Factories の話題で DSL について Boost や関数型言語の立場から語ったりしたとか、そういう話をしたことを書き留めておかないといけないでしょうか。Software Factories のセル生産との関連についてのからめて話していたなかで、向こうにセル生産方式についてのバックグラウンドがないせいか、ついていけない人を弾くという意味が「Tailorism のような誰でもできる仕事による Factory ではなく、セル生産方式のようなその範囲内であらゆる事をやる熟練者を要する Factory を描いているために、誰でもできる仕事ではなくついていけない人を弾くという側面もある」ということだというのが伝わってなかったのが心残りです。
Wiki小話/Vol.1 に参加してきました。RHG のように発言者が喋っていく中でどんどんつっこむというものよりも色々と話題をふってきてそれに答えていくようなものを想定していたので、Haskell 製の Wiki をネタにできないかどうか調べてみようと思ってFlippi を探すも名前をすっかり忘れて見つけれないでいるうちに http://scannedinavian.com/repos/wikiwiki/ の darcs repository に emacs-wiki に置いてあるのを発見し、最初「何やってるんだろう?」と思いましたが、時間がたってから「ああ、そういうやり方もあるのか」と思わず納得しました。
単一の repository を認証によって制御するのではなく、ユーザーごとに独立した様々なブランチを持たせることによって、他のユーザーと編集を共有したい部分は共有し、編集合戦のような意見の衝突が起きる場所ではその部分の意図に沿わないような変更は適用しない、というようなことができます。なるほどうまいなと思ったので、飲み会の方で分散バージョン管理の Wiki なんてどうだろうと紹介しておきました。Wiki ごとに様々な文法があることに対し、過去に Wiki の文法の標準化とか、フォーマットを決めてユーザーが自由に選んだエディタで編集するというアイデアをこの問題の解決のために流用する、というようなアイデアがありましたが、分散バージョン管理の Wiki というアイデアを見た今では真に必要だったのは複数の Wiki 間での(全体ではない)適度なマージを実現する仕組みだったんじゃないかと思います。
で、小話自体は確かに周囲に話題を振って尋ねながら進めはするものの、予想していたよりはずっと発表者主導の会でした。なので、今後その場で色々と飛び込んでやれるようになったらというような話がありました。
[topic:Haskell]
もう少し RC を出すかなと思って距離を取っていたら GHC 6.4.1 が出てしまったので、直せなかった部分があるのが心残り。とりあえず Panic で user error (resolvedObjs failed.) が出るという症状とパッケージに漏れがあるのは直りました。何故か Windows 版のライブラリドキュメントのトップページから GLUT と readline へのリンクがありませんが。Cabal のバージョンは上がっていなかったようなので、22日版に引き続き Mac と同じく Windows でも runhaskell (or runghc) Setup.(l)hs build とやるとエラーがでてしまうようになってしまったのはおそらく使っている MinGW を 4.1.1 にバージョンアップしたためでしょう。……と言いつつ、Mac 版は DarwinPorts でしかまだパッケージがないのでまだ入れてませんが。ちなみに外部ライブラリ云々言ってたのは、ghc-pkg が ./ とか ../ をうまく扱えなかったということのようです。あとは Panic のサンプル Bitmap の UI のうちスライダーが表示されなくなっているのが……。……というわけで満足できない部分はあるものの、重大なバグがいくつか直っていたり、amd64/Linux に対応してたり、GCC 4.0 に対応しているので、そういうので困っている人はバージョンアップしても良いではないでしょうか?
で、その Cabal 修正が欲しいのか Visual Haskell に同梱されているのは GHC6.5 でした。Cabal をプロジェクトファイルにしているというところは良いものの、新規プロジェクトを作ろうとすると *.cabal と関連付けているアプリケーションがないと言われて拒絶されてしまうし、関数の型判定の返事が帰ってくるまでが Emacs でのモードに比べてかなり遅かったのでいまいちだと思ってすぐにアンインストールしてしまいましたが……。
圏論勉強会中止のため、一日中ビルドしつつ、読書。
[topic:Haskell]
というわけで、Mac 版のバイナリがでました。とりあえず(少なくとも GCC 4.0 では) runhaskell (or runghc) Setup.(l)hs build でエラーがでないようです。が、これは Cabal が修正されていることを意味しないので sudo ranlib /usr/local/lib/*/lib*.a をやらないといけなくて面倒くさい……。
他には wxHaskell を使う際に、Tiger にデフォルトで入っている wxWidgets (wxMac) は unicode 版で unicode 版に対応するためのパッチは書かれているけど wxfruit でエラーがでてしまうようにまだきちんと対応し切れてないし、いまリリースされている wxWidgets 2.6.x にもメニューがきちんと出ないというように対応しきれてない部分があるらしいので、odbc を無効にして wxWidgets 2.5.4 を取ってきて入れるところから始めないといけないということや、pkg-config で SQLite3 の場所を呼び出すようにはなっていないので cabalize をやりなおしてやる必要がある(既に Windows 版を作っているので include-dirs と extra-lib-dirs をコメントアウトするだけで済みましたが)ことに気をつけなければいけません。(しかも wxWidgets および wxHaskell は GCC 3.3 でないとビルドできません。)
この patch を Windows でも試して欲しいといっているのですが、Visual Studio のエラーメッセージを英語で出力させるのってどうやったら良いんでしょうかね。
2005-09-26T23:50:00+09:00追記:一通りインストールも終わってやれやれと思っていたところにメールが。なんと DarwinPorts で unicode.patch の開発をやっているそうな。入れ直すの面倒なんでですが……。どうしよう?
今日は 『計算機プログラムの構造と解釈第二版』を読む会が中止になってしまったため、WOMeeting に顔を出す。これからやりたいこととして順当に次の(会内)読書会の本の選定の他、技術者としての関心として Rails 入門をやろうとか、Haskell 入門を私にやらせようとか、そういうアイデアが出てくる。入門的な内容を一通り終えた後、ライブラリ本を書きつつそれへのフィードバックを貰うために講義するっていう形式がやれるなら良いかなと、思わず皮算用してみたり。入門の内容はどうするかな? 「情報処理」連載の「Haskell プログラミング」について解説するというのも良いかもしれない。ソースコードもあるわけだし、別解を用意してとか。
終わった後、多数が忙しくて飲み会ではなく食事会程度で解散してしまっため、せっかくなので猫森集会に顔を出せば良かったかもしれない。昨日も行けばよかったかなぁ?
やっぱ patch の意図をきちんと説明しておかないと、ダメか。12〜17 日頃(記憶があいまい)に作った(本家 GHC の) OpenAL への patch を gmail で Libraries の Mailing-List へ送りなおすことで当てて貰ったものの、肝心の Mac OS X 対応部分が当たってない……。とりあえず説明文を加えて作り直して送ってみたけど、今度こそ当たるかなぁ?
今村仁司著、マルクス入門 (Amazon) 読了。議論の正確さを重視するために文章は全然平易でないのに、内容的にはあくまで(いわゆる)マルクス主義的な独占的解釈から逃れてマルクスを理解するためのガイドブックでしかない、という意味で難易度の高い本。入門書としては良い本だと思うけど、中の文章から構造主義以降のマルクス解釈の集大成的な解説本を期待してしまうと不満が残ると思う。
[topic:アニメ、感想]
良かった。この作品を見ていて本当に良かった。
これは前回からのことを含めた感想になるけど、裏切られたことを原因に人に絶望した相手を倒して終わらせるのではなく、対話によって諭そうとし、心を救って終わらせるという持っていき方が良かった。定番の復活も倒すためにではなく心を救うためという形を選び、これまで節季や式神といった背景を時間をかけて丹念に描いていたために不自然さを感じることなく見ることができた。そのスタッフの仕事に感謝します。
スタッフの愛を受けて細かなサブキャラ達までエピローグを描いていった中で、マドカなどあえて登場しなかったキャラもいるけど、ここまでフォローしてくれたスタッフのことだから(地流が台頭していたあの時期のように無理にでも人を集めているわけではないことから)再び春を迎えるまでの今ではなく数年後へと答えを託しているんだろうな、と思いを馳せてみる。
来月は Pan のハックのために CodeFest 京都 2005 に行く他に、関西の方の Haskell 同好会立ち上げのイベントで関西オープンソースにも呼ばれているので、2回関西に行くのか。