HTML

2005年09月29日 木曜日

Windows Programming in C++

流れが速すぎて、あんまりまじめに勉強したくないんだけれど、C++によるWindowsプログラミングを10年ぶりくらいに再開してみました。とはいえ、今のところはDLLが書ければよいかと言うレベル。DLLを書くのも結構かったるい。(忘れてしまった自分も悪い。)
ついでなのでGUIを持ったプログラムを書けるようにもなりたいと思いたった訳だけれど、周りの環境を調べてみてどう攻めていこうか考えてみる。学習曲線はC++の場合そんなに急ではないので、年単位で時間ががかることを前提に考えることとすると、Windowsに限定して考えれば現在身の回りで.netを使える環境は自宅のPCだけという惨憺たる状態。とてもツールとして使って貰うようなプログラムを.netで書ける状態にない。と言うことで、Win32環境でオーソドックスにC++で攻めるのも悪くはあるまいと思ったわけだ。
MFCはずいぶん前に挫折した痛い経験があるので、それ以外のフレームワークを探してみる。Doc-Viewというスタイルは感銘はするが、常にDoc-Viewを必要としているわけでもないので、今回はこれを迂回してATL(Active Template Library)/WTL(Windows Template Library)で遊んでみようと思う。すっかり廃れてしまった感のあるATLなんですが、ATLだけでGUIなプログラムはかけなかったなと言う記憶があって敬遠していたが、ATLを補うGUIテンプレートライブラリがWTL(Windows Template Library)として、いまやMSのオープンソース戦略の一環として配布されているので、これでいいのかもと思っています。(ATLはそうではないので困ったなあと言う問題はあるのだけど。) MFCと比べると、Doc-Viewを強要されない(ViewはあってもDocはない)、ヘッダだけで構成されている(templateだから当たり前か) 喞ぢでプログラムを書いていた時代を知っていれば何とかプログラムが追える、というようなもので、何とか遊べそう。後はなんと言っても、_多重継承とtemplateを使いまくり!_というC++フリーク向けのライブラリであったりもするので、サンプルのソースを読んでいても楽しい。ぼちぼち勉強してみよう。参考となりそうなサイトをメモ。

2005年08月27日 土曜日

Lightweight Language Day (and Night)

今年もLightweight Languageの年に一度のお祭りであるLightweight Language Day (and Night)に参加してきました。チケットの発売に気がつかなかったので、何とか買えた昼間の部のみ参加。
今年の僕が感じた目玉のひとつ目は、GNU awk(gawk)のXML拡張であるxmlgawkであろうか。僕がgawkやnawkを使っていたのは学部の4年目のころで、あのころは日本語化パッチを当てたjgawkをメインに使っていた。(今にして思うとperlのプログラムも結構書いたけどawkほど使ってないな。) 気がつけば国際化されて、キーワードが増えてXML文書をSAXっぽく扱えるようだ。この拡張はgawkの先端開発版という位置づけで、コンパイルオプションで無効にできるそうだ。awkは行指向ツールとしてはperlやrubyより使いやすいところはあるので、まだ開発が行われていて進化が続いているのかと言う驚きとともに、昔師匠のawkの技でうんざりしてしまいやめてしまったawkであるが、再び遊んでみたいなあと思ったのである。(僕の師匠(指導教官ともいう)はawkとかPostScriptのプログラムをサクサクと・・・)
二つ目は全然追いかけてもいなかったけどPerl6周辺の話。昨年のLLでは北京オリンピック頃と言っていたPerl6であるが、この1年でPerl6のHaskellによる実装(Pugs)を行ったという天才が登場して、突如として開発が加速しているようだ。それにしても1ヶ月でHaskellを覚えて、Perl6の仕様を具現化してしまうとは。若い天才的な人物の登場というのはなかなかエキサイティングなことだったのだと思う。小飼さんのPerl6のデモを見ていたのだけれど、Perl5との互換性を捨てているせいか、言語自身がリファインされて、どことなくrubyに近づいているような・・・ 似たような機能を影響しながら追加していくと、結局PerlとRubyとPythonを足して3で割ったような言語ができるのだろうか? もうちょっとPerlの良いところであり悪いところでもある毒々しさを残して置いて欲しいのだけれど。
他の言語に関しては特に進展があったわけではないのでここで述べる必要もないと思う。ざっと10個の言語プレゼンを聞いたのであるが、聞いた結論としてLightweight Languageとは何だろうかと思ってしまう。個人的なLightweightであることの定義付けであるが、まず最初に軽い記述で高度な処理ができること、次にたいていの人にとって理解しやすい概念のみでプログラム可能であることかなと思う。そういう点でエヴァンジェリストの方々には大変申し訳ないが、monadsとか、Curry化とか、継続とかが一般に理解されるようになるとはとうてい思えない。(一応分かりやすいと思う解説へのリンクは貼った。) むろん関数型プログラミングの威力は理解できるのだが、果たしてLightweightなのか? 誰しも知っていて当たり前なのか? と言うあたりが僕は知りたい。(Scheme的にはSICPを読めと言う話だと思うのだが、みんなしなければならないもんでも無かろう。) ちなみに僕自身はLightweightに関係なく関数型な言語の1つはプログラマを志す人は教養レベルでも良いからやっておくべきだと思ってはいる。第一、面白いし。
フレームワーク対決については、Kahuaは昨年のLLで面白いツールだと思っていろいろ調べていたので、面白くデモを拝見したのだが、もう少しうまく説明できればなという場面が多かったかも。Ruby on Railsについては、一度デモを見ておきたいと思っていたので、今回のプレゼンは参考になった。みんなが凄いというだけあるな。うちのサーバにインストールというのはバックエンドDBをインストールしたくないので保留としても、試験動作環境のDebianマシンには入れてみてもいいかも。ちょっと検討してみよう。Sledgeについては今更Perl Baseなシステムを持ちたくない(我が家の環境でPerl依存なものはもうほとんどない)ので、意見は保留。
「君ならどう書く」というセッションは、漢数字を扱う電卓ということで、面白く眺めさせてもらった。今回の漢数字の定義自身が、一般的ではない(世間的には無量大数まで万進のはず。今回はどの桁か忘れたけど万万進に切り替わる)こともあり、パースをどうするかというところが面白かった。(万万進の場合は人間が聞いてもよくわからなくなるので、少なくとも国内では廃れている。) 桁数が多くなれば誰しもがやるように、下の桁から勘定すればいいのよね。今回は個人的にはプログラム可能な電卓を作りこんでいたPythonのチームが秀逸であったと思う。
あと自由演技のsfの小林さんなのだが、科学技術計算という論点では特に行列計算ができる計算機という位置づけだったかと思う。この手の計算は特に実験系の人は常に悩ましいと思うのだが、測定器が吐き出すテキストデータをなんとかパースして、どう配列に取り込むかという点でいつも悩むところがあるが、このプログラムの場合データを表のようなものに落としこんでテキストファイルとして、テキストファイル自身が行列やベクトルをあらわして、ファイル名を記号として使えるような計算に特化したシェルのようなものという風に読めたのであるが、あの場で量子力学の固有値計算をするのはどうかと思う。説明によっては面白いと思うのだけど。ちなみに僕はあの規模の計算は普通にCで書くべきだと思う。いろいろ悩ましいけど。

2005年07月25日 月曜日

FFXI廃人人生66日目

今日はナイトのアーティファクト装備のクエスト その2をいつもお世話になっている団長さん(すでにRLKの団長さんではないし、僕らもみんなRLKつながりだけど、いまはRLKな人じゃない)に手伝ってもらうことになった。多謝なのである。
ナイトのアーティファクト装備クエストを参考に進める。2番目のクエストは話を聴いて釣りの餌まで準備していたので、その続きから。オズトロヤ城の最深部の池でのんびり釣りを楽しみ、モンスターを吊り上げて倒すって言う内容だけど。確かに今のレベルだと一人ではできないなあ。ということで、団長さんのお手伝いがあって無事終了。今週はこつこつAFとレベル上げを進めておきたいものだ。明日はエルディーム古墳に闇の炎を取りにいけるかもしれない。

2005年06月26日 日曜日

FFXI廃人人生37日目

今日も出かける気力が無くなるほど暑いので、冷房の効いた涼しい部屋でFFXI。だめだめだな。
今日の昼間の目的は戦績ポイントとOPテレポサービスのための補給クエスト。最近サンドリアのコンクエストの調子がいまいち良くないため、今週(今日まで)で行けそうなリージョンはリ・テロア地方なので、クエストを受けてみた。目的地はリ・テロアの入り口エリアの聖地ジ・タなので、さくっと行ってみようと言うノリで行ってみた。渋い音楽で美しいところだと思うのだが… さんざん歩いて地図を持っていないことに気がついた。さすがに地図なしで行けるほど甘い地方じゃなかった。(基本的に森を地図なしで歩くのは困難だ。)地図はマウラに売っていると言うことなので、マウラで地図を購入後に再度チャレンジしたのだが、さすがに途中でゴブリンに絡まれるなあ(しかもあまり視界良くないし)ということで、インビジ・スニークを自分で使えるようになるまで待つか、ウィンダスからチョコボでくるかのどちらかが妥当だな。そんなわけで断念。次行くときは自力でOPまでは行けるだろう。
今日ついに資金枯渇な状態になってしまった… さすがにまずい状況なので、戦績アイテムを売りに出してテンポラリな資金の導入を行い、平行して名声と合成原料とクリスタル獲得(特に炎のクリスタル、風のクリスタル)のためにシーフを育てることにした。(名声を稼ぐために貢ぐアイテムをモンスターから盗むっていうのが倫理的に正しいのかい? スクエアさんという話ではあるが・・・)以前暇つぶしにレベル3まで育てていたので、今日は西ロンフォールで丁度〜楽を乱獲して一気にレベル8まで育てた。こっちはなんとかトレジャーハンターのジョブ特性が付くレベル15まで育てる方針で進める。べつに合成職人になる気はないのだけど、メインで使うミスラ風海の幸串焼とジュース類を自給できないとレベル上げでもつらい物があることと、目的地に行くためにサイレントオイルとプリズムパウダーの需要が増えたので、これも自給自足したいというのが目的で、素材集めにシーフの特性も使えたらよいと考えている。湯水のように資金が無くなったのはこのせいでもある。

2005年05月18日 水曜日

僕はコードを書けないだめだめな人ですが…

思うところを書いてみて、気が付いたら反応リンク集に。ひょえ〜。そんなわけで、コードをかけない人ですが、思うところを書いてみる。僕はコードを書く能力はないですが、そんな僕にもできることはあるだろうと思って、ここ数年Linuxの地域ユーザー会の運営に携わっています。三浦さんとはそのときからのおつきあいですが、いつも大変お世話になっています。僕はごく一面しか見えていませんが、現状のOSSの世界であのバランスで精力的に活動して、どこに出かけても見かける人はそう何人もいません。いつもながらお世話になりっぱなしです。
で、僕が三浦さんのCodeFest 2005 JAPANと言う記事を読んで思ったのは、先の日記に書いたように、いろいろなコミュニティへの積極的な参加・運営、啓蒙・教育、政治的な方面とのやりとりなどを続けてきて、いろいろ板挟みやギャップを感じることががあるのかなと思ったことは確かだけど、あともう一つ。僕は_「CodeFestを日本で開く応援をしたい、推進派になった。人材育成とか、日本発のOSSとか、コードも書かない人に言われたくはない。」_と言う文章を読んで、こういう楽しいイベントがあるんだから、_何より先に自分自身が主体的に参加していこう_とか_こういう場で成長する人もいるに違いないから応援していこう_と言った_凄く前向きな意見_としてとらえたのでした。
いろいろ読んだ中で、狩野さん

ところで、「人材を育成する」という言葉の裏には、「人材として育成される」人が当然存在するわけだ。あなたは人材として育成されたいですか?

はっきり言って私は、嫌である。自分が楽しい事を最優先にしたい。伐り倒されて製材されるより枝葉を盛んに茂らす大木として立っているほうがよい。
という言葉に同感。OSSの世界では特に、三浦さんがおっしゃるところの「利用者」と「開発者」の両輪があって初めて回っている世界だと思う。「利用者」はこれまでの普及活動なり啓蒙活動なりがうまく回って、(内容は別として)それなりの母数に成長したと思うが、「開発者」はどうかと考えると利用者に比して増えているわけではないように思う。(僕はどちらかというと利用者側に目立たないところで種まきをしていた人ですが…) IPAの未踏やコンテストで成長する人は確かにいるのだけど、僕はこの方向ができる人は少数だと思うので、もっと敷居が低い世界があっても良いと思う。(敷居が低いと言っても、こんなにいろんな凄い人が集まることはないと思う。) 実際に一線で活躍している人に実際に会って、その姿を目の当たりにする_と言うことがどれだけ衝撃的なことか、「人材として育成される」のではなく、「主体的に成長する人」_に変わることができるきっかけがそこにあるのだ。ネットだけ見ていると忘れがちだけど、実際人に直接会うことで得るものは非常に多い。そういう人をいろいろ見ることで、何かしらの刺激があるはずなのだ。僕にはコードを書く能力ははないけれど、そういうイベントの開催を応援することは出来るので(実際には能力がないと見切っているだけで、磨けば何かあるかもしれないが話は別。) 今回は参加しようかなと思ったときには既に遅かったが、次回以降何かしらの形で参加できればとおこがましく思っている。
まあ少なくとも、三浦さんに会っていろいろ話をするようになってもうすぐ5年目になるけど、こんなにいろいろ刺激をくれる人はなかなかいない得難い友人です。すべてを答えられない自分の非力さを悔やむことはないわけではないけど、こんな僕でも凄く刺激になるのだから、こういうイベントの場に参加できれば、びりびりいろんな刺激を得られると思う。そんなわけでCodeFest 2005 JAPANを影ながら応援します。
確かに、発端になったであろう佐渡さんの記事での引用「コードも書かない人に言われたくはない」は確かに訴えるものがある刺激のある言葉ではあるけど… Tシャツ作ったら買います。(笑)