残念な結果であった。基本的なアイディアはともかく、 その表現と評価方法に難があったようだ。めげずに頑張ろう。
昨日のエントリでもすこし触れたが、 ブロックパラメータの文法を変更したい気持ちがある。 理由は、昨日述べた通り「メソッド引数リストと同じ文法を使えない」からだ。 yaccをあきらめてパーザをもっとずっと複雑にすれば不可能ではないかもしれないけど。
jijixiさんからツッコミでは(冗談とはいえ)、 Groovyの -> を逆輸入することが提案されていたが、これはあんまりうまくない。
新しい文法への要求としては
である。Groovyの -> はyaccを使う限り、2番目の要求を満たさないと思う。
ちょっと考えて思い付くのは以下のようなものか。
Perl6風無名関数
Groovy同様 -> を使うが、こちらは
-> (x,y) { ... }
のようなもの。Perl6では
foreach ary -> (x) { print x; }
という感じで使う。
こっちの方が見栄えがよいような気がするな。 でも、この場合、-> は引数リストと本体との区切りではなく「lambdaの代わり」になっているな。 ブロックとして使う場合は
{ -> (x, y) ... }
か。なんか変だな。
新しい予約語を使う
昔々、ブロックが導入される前のRubyの文法を検討したメモには「using」という予約語を使う文法を考えていたことが示されている。これを復活させるか。
{ using x, y; ...}
あんまりパラメータらしくないな。やはりメソッド引数宣言に似た文法(つまり括弧で囲まれているということか)が良さそうだ。
lambdaを拡張
結局、メソッド引数のすべての文法が欲しくなるのは無名関数の場合であって、 インラインブロックの文法は今のままで構わないというのもひとつの見識だ。
そこで、lambdaを予約語としてしまうのはどうだろうか。
lambda(x,y) {....}
インラインブロックでたとえばオプショナル引数が指定したい場合には、
foo(args, &lambda(x=15){...})
のように指定することになるだろう。こういうケースはまれだろうから、 積極的に短くすることを支援しなくても良い。
別の記号
しかし、それでもlambdaは長い。では、別の記号を導入するか。 先ほどのPerl6における -> でも良い。Haskellではlambdaはバックスラッシュを使っていなかっただろうか。
\(x,y) { ....}
うーむ、一目で意味が分からないぞ。慣れたらなんとかなるものなのだろうか。 また、フォントによってはバックスラッシュでなく円記号に見えるのもうまくない。
と、考えを撒き散らすだけで、結論はない。
ライセンスの懸念を解消するため、 missingの下にあるerf.cとcrypt.cを4.4BSDからのものに置換。 しかし、そのままではコンパイルできず各方面に迷惑をかけてしまった。
あ、crypt.cはともかくerf.cは奥村先生に連絡を取ってpublic domainの確認を取れば良かったんでないか。 今、気がついた。どうしたもんだか。
梅雨入り以来まったく雨が降らず渇水が心配されていた松江地方だが、 昨日になって雨が降ってきた。
夜はさらにひどい雨と雷で、停電まで。 夜中に目が醒めて真っ暗でびっくりした。
子供達は停電のせいでアニメの録画予約が失敗してがっかりしていた。
おかげでダムの貯水率が3割台から8割強まで回復したそうなので、 渇水の心配はなくなったようだ。しかし、今度は大雨洪水警報だとか。 なにもそこまで降らなくていいのに。
雨で外に出るのがおっくうなので、 家族みんなで片付けをする。 家族が多くてみんな片付け下手だとあっというまに散らかるのよ。
8ヶ月になった下の子があちこち動きまわって、 ものをひっくりかえすようになったし。 ちょっと目を離すとコードをかじってたり、 本を破ってたりするし。
油断大敵。
断食、証会。
今週もまた青少年クラスの教師。 毎週「来週は別の人だから」と言いつつも、 いざクラスが始まると私がやってくるので青少年たちも苦笑している。 私も苦笑している。今週は「神権」について。 あらためてアロン神権およびメルキゼデク神権について復習。
集会終了後もいろんな人と挨拶したり、 打ち合わせをしたりして忙しかった。
langsmithで発表された新言語。 スクリプト言語でありながら静的な型を持つのが特長。 まだ荒削りだけど結構面白いことになりそう。
正直なところ、同じ領域でありながら、Rubyとはことごとくデザイン決定が逆向きなのだが、 それがかえって面白い。同じようなものが乱立しても違いがあまりなくてつまらないものね。
Eric Raymondが「もうGPL要らないじゃん」と言ったというインタビュー。
実はまだ中身はしっかり読んでないんだけど。 彼の立場からはそうなのかもしれない。 GPLで一生懸命自由を保証しようとしなくても、 もっと緩い、たとえばApacheライセンスやBSDライセンスでも 大きな問題は起きていないじゃないか、という主張なら(すいません、まだ確認してません)、 分からないでもない。
でも、実はGPLは、 ビジネスの立場からオープンソースソフトウェアにかかわる人々にとっての武器になっている。 たとえばGPLの「ソース非公開不可」という条件は、 ソース非公開なソフトウェアを利用したい人に非GPLライセンスを売るという(Stallmanは気分を悪くしそうな)ビジネスを成立させているし、 またビジネスとして金をかけたソフトウェアのソースコードを ライバルが勝手に利用していた場合、GPLは訴訟によってライバルを叩く武器となる。 BSDライセンスではそうはいかない。
そういう意味では、ビジネスを含む殺伐系オープンソース界はまだまだGPLを必要としている、 ような気がする。
それはStallmanの望んだ世界ではないのかもしれないけど。
以前、Rubyのバグトラッキングシステムとしてruby-lang.orgでjitterbugを運営していた。 今は「Ruby のバグ(勝手に)トラッカー」とrubyforge.orgのBTSをなんとなく利用している。
が、どれもこれも一長一短で完全に気に入るものではない。 Tracにも期待しているのだが、今からsubversionへ移行するのもちょっと抵抗があるし、 どうも私の期待を完全に答えてくれるわけではなさそうだ(知らないだけかも)。
既存のBTSへの不満はこんなものだ。
こんな不満を解決してくれるものはないものか。
最近、かずひこくんが作ったHikiのIssue Tracking Systemと、 quick MLと適当なMLアーカイバを組み合わせればできるような気がしないでもない。
が、車輪の再発明かもしれない。
Wikiといえば、その特長のひとつとして大文字にした単語を並べて作るWikiNameがある。 しかし、日本語ではWikiNameを表現することはできないので主に二重ブラケットで囲んだ [[ブラケットネーム]]が使われている。
さて、先日来、コンピュータについては専門家でない人も含めてWiki(Hiki)を運営しているのだが、 各ページに適切なWikiNameを付けるのはなかなか難しいものらしい。 とはいえ、日本語のページネームはURLエンコードされた記号・数字の羅列になるのであまりうれしくない。
結局、私がWikiNameを付けたページを作り、他の人は既存のページに書き込む、 という運営方法で落ち着いている。経験があまりない人にとって新規ページ作成は負担なものなのだ。
しかし、考えてみればHikiにはページ名の他にページタイトルというものがあって、 リンクなどはすべてそちらで行うことができる。 とすれば、実はWikiNameというものは不要なものではないか。 実際、多くのCMSでは各ページには名称がついておらず単なる数字で識別されているものも多い。
そこで、手近にいたHikiのメンテナ(ま、ようするにかずひこくん)を捕まえて、
「新規作成」でページ名を入力しなければ、勝手に(数字な)ページ名を生成してくれるって仕様はどうだろうか。
と持ちかけてみた。元々のWiki的な発想を持つ人からは出てこないアイディアだったそうだが、 前向きに検討してくれるそうだ。もしかしたら、近い将来のHikiにはそういう機能が追加されるかも。
と、今日のハックはアイディアのみであった。
「OSDに従うべきだ」とか「オープンソースと呼ぶな」といった オープンソース論争はもう1年以上前になるのだが、そんなのをふっとばすような豪快な「オープンソース」が登場した。
MYCOM PC WEBによれば、 人材派遣会社の聖翔(SEISHOW)は、 技術向上を視野に入れた職人気質な派遣技術者を、 アウトソーサー(アウトソーシングされた技術者の意味らしい)越えた 「オープンソーサー」と呼ぶそうだ。
自動車メーカーをはじめとする各社のアドバンテージが、技術者一人ひとりの力に大きく左右される時代の中で、技術という質の高い“オープンソース”を提供する企業がある。「オープンソーサー」を標榜し、技術に特化した人材派遣や開発業務受託を行なう聖翔株式会社が、それだ。技術志向の同社は、エンジニアの新しいワークスタイルを確立し、今また次の目標を目指してスタートを切ったばかりだ。
−−人材アウトソーサーとは異なるのでしょうか
飯島 技術会社として技術レベルの高い仕事を行っています。“アウトソーシング”という外部委託の考え方ではなく、新しい製品研究開発の取り組みなど質の高い技術開発に特化した“オープンソース”というビジネスモデルを提唱し、物を創り出す醍醐味を受託や派遣という形でお客様とコミュニケーションを図っています。−−オープンソーシングとは、どんなものでしょうか
飯島 アウトソーシングは、企業のTCO削減や業務効率化を図る手段として毎年増加していますが、単なる労働力の提供と一部には必要な時に必要な人材の確保ができるものの、全体からみるとスキル不足、ミスマッチングなどが生じています。技術者はスキルアップ、キャリアアップへの欲求とこだわりが大きい。そんな技術者を満足させるワークスタイルが『オープンソーシング』という働き方です。コアの技術に触れられるチャンスが多い研究開発設計などに特化することによる充実とチャレンジが自己満足への道を歩めると考えています。
「技術という質の高いオープンソース」で、 「オープンソースというビジネスモデル」だそうだ。勘弁してほしい。
この記事にはアンケートも用意されているので、我と思わん人は 「俺オープンソース反対」でも、「オープンソースという単語を悪用するな」でも、 「迷惑。勘弁してくれ」でも、 「よくやってくれた。打倒オープンソースソフトウェア」でもなんでも、 忌憚ない意見を送ってみてはどうだろうか。
ネットワークウォークマン「NW-E407(1GB)」が当たるかもしれない。
まだ8月にもなってないのに9月号とは。 日本の出版業界の慣行はまったく。
などと愚痴をこぼしてもしょうがないのだが、 9月号である。普段ならわずか2ページのしかもお気楽な内容が多い「ハッカーズライフ」は わりと手早く書けてしまうのだが、今回は全然進まない。
テーマはわりと早く決まったのだった。前回のを書き終わった直後に、 今度は使わなかった「言語重要」に決めたのだった。 しかし、そこからがいけない。全然、書けないのだ。 スランプか。
「緑川先生ったらもうとっくに〆切過ぎているのに」とロコちゃんのお父さんに言われそうな*1勢いである。
人間はプレッシャーが強まると仕事ができなくなるものらしいが、 私は特にそれが強い。今月はいつもと同様の
に加えて
があるので、どれから手を付けてよいのか気持ちの上で軽いパニック状態が続いているらしい。
とはいえ、いつまでも遊んでいるわけにもいかないので、集中してなんとか書き上げた。 今度は日経Linuxか。
*1 「とっとこハム太郎」という番組で「ハム太郎」の飼い主ロコちゃんのお父さんの仕事は編集者である。だいぶ前にテレビでこの「とっくに〆切過ぎてるのに」というセリフを聞いて苦笑したのは〆切商売の性(さが)か。
で、明日は北海道への移動日なのですが、11時半に新千歳についてから、 夕方6時に宮原さんたちと合流するまで手が空きました。 どうやって時間をつぶそうか。
いや、どこかネットのつながるところを確保して原稿を書いてた方が良さそうな気もするけど。
山口花能の新・煩悶日記: bounce jack live と増山麗奈個展オープニングパーティーより。
写真左の人物はbounce jackのギタリスト、まつもとゆきひろさんである。 いや、「松本」は珍しくない名字だし、「ゆきひろ」も「ひろゆき」よりは少ないにしても そんなにありえない名前じゃない。 実際、私の漢字の名前「松本 行弘」と同じ名前の人物が世の中に少なくとも後3人いることは確認している*1。しかし、わざわざ重複しないように選んだひらがなの名前まで重なるとは。
私は楽器が全然ダメなのでギタリストとは憧れるなあ。 しかし、彼は自分の名前を検索すると私がたくさん出てきて迷惑してるかもなあ。
*1 三人の松本 行弘は、東京証券取引所にひとり、朝日新聞社にもうひとり、あとのひとりは布団屋の専務をしているらしい
どたばたと準備をしつつ、北海道へ。
9時30分の直行便(JL3421)に乗って、札幌へ。11時半には着いてしまう。 直行便なら近いものだ。
しかし、飛行機に乗ってから気がついたのだが、上着を忘れてしまっていた。 そういえば涼しいところに移動するのだった。 実際に着いてみると、たしかに涼しい。松江よりはかなり気温が低そう。
急遽、札幌の駅ビルで上着を買う。
その後、ホテルに移動して明日のスライドを作成する。 なんという泥縄か。 しかし、このホテルがギーク向けでなくて、 部屋にネット接続がないのはもちろん、 コンセントすらない。
コンセントはサイドテーブルを移動させた後ろで発見。
ネットはPHPPHSカードで確保。
とはいえ、あまりに遅い接続に耐えられなくなって、外へ。 結局、すすきの近くにあったYAHOO BBステーションなるネットカフェ(?)で、 接続を確保。しばらく調べ物+日記読み+その他。
その後、宮原さんたちと合流。懇親会へ。 本番は明日だというのに、もう終わったような気分になるのはなぜ。 お魚はおいしかった。
すすきのから駅前まで歩いて帰る。
ホテルに帰ってから、日経Linuxのテーマについてまとめる。 しかし、来週は集中講義もあるのに、ほんとうに仕上げる時間がとれるんだろうか。
Rubyのブロックの新文法について考察するだけで終わる。 ぜんぜんハックしてないよー。
本番。ホテルから歩いて北大、クラーク会館まで移動。
いろんな人が来ているので御挨拶。 高橋さんもいらしてた。 日本Rubyの会はYARVのポスターとRailsによるブログツールTypoを展示していた。 TypoはAjax風味の表示が結構すてき。
日本Rubyの会の展示の隣はZopeが展示していた。 展示していた人は、私の顔を知らなかったようなので、 以下のような会話が交わされた。
展: プログラミングはなさいますか
私: ええ、すこしは。
展: 私はプログラムしないんですけどZopeは便利ですよ
私: Pythonの文法は知ってるんですけど
展: 使わないんですか
私: あんまりPython使わないですねえ。
展: 宗教上の理由とか(笑い)
私: いや、そーじゃなくて仕事上というか、立場上というか(苦笑)
展: そうなんですか(真顔)
...以後、ZODBに関する面白い話が続く...
そうこうしているうちにお昼になって、 スタッフの人が呼びにくる。「まつもとさん、こっちこっち」。 言われるままについていくと、 北大の敷地内芝生にビニールシートを敷いて、 七輪並べてジンギスカンを始めている。
なんとのどかな。
私の母校も敷地の広さでは負けないと思うのだが、 そんなのどかさはなかった。 私の発表は午後一番なので時間の余裕はなかったが、 しっかり堪能した。 しかし、私の一族のマスコット動物は羊なのだが、 それをよろこんでばくばく食べるというのはいかがなものか。 母親あたりにひどく怒られそうな気がする。
で、午後は発表。スライドはここ。
ま、わりとふつーの発表。なんかどこかで聞いたような話が多いけど、 まあ、こういうイベントは北海道では珍しいだろうから、 基本的なことから。基本的すぎて聴衆がどう感じたのか不安だったが、 数人に感想を聞いた範囲内ではおおむね好評であった。
発表終了後、松江に置いてきた妻子とSkypeで話をしてから、 北大博物館へ。やっぱりここまで来たらマンモスを見ておかないと。 次女が「どうしても見てきてほしい」ということだったし。
展示はこじんまりとしていたが、貴重な資料がたくさんあって、面白かった。 閉館直前であったがしっかり写真も撮ってきたし。
その後、みんなで移動して懇親会。そろそろ疲れが出てきていたが、
などなどについて。
懇親会終了後、みんなが「じゃあ次だ」と移動を開始する。 9時過ぎに会場を出て、予約が10時だということで、 「じゃあ、それまでラーメン食べにいこう」とかいう人までいる。 この人たちの胃袋はどうなってますカ?
と思ったが、実際に二次会の会場(石鍋屋)に着いたら、 ジンギスカンやらモツ鍋やらばくばく食べてしまう。おいしい。 私の胃袋もどうにかなってますヨ。
食べながら、Rubyは金の匂いがしないとかなんとかいう話もする。 そのうち、うち(NaCl)が「Rubyで10倍の生産性」とかなんとかプレスを打って、 世間の注目を集めたらちょっとは状況が変わるかな。変わらないような気も。
酔えば酔うほど高くなる高林さんの声。大企業の中の人は大変だ。
三次会に行くという人もいたが、 それは振り切って、東横インへ。ロビーの無線LANを使わせてもらいつつ、 morqのハックを。それから歩いて自分のホテルに帰り着いたのは夜中の2時をはるかに回っていた。
後輩が「月曜日にはどうしても必要なので」とせがむので、 morqをハック。今まで基本的にEstraierをベースに検索していたのだが、 当初の構想の通りRast上で動くように変更した。 で、前田くんのximapdを参考にさせてもらいつつ、ごそごそやっていたら、 1時間ほどで完成。東横インからホテルへ移動。
しかし、そこでマシンがハング。 そういう時に限って /tmp で作業していたりして、 1時間の成果を失った。出張中だし、夜遅いしでちょっと気が焦っていたのだろう。 普段なら致命的なファイルを /tmp に置いたりしないのに(本当か?)。
いずれにせよなくなってしまったものは帰ってこないので、 再挑戦。一度実装しているので今度は20分ほどでとりあえず動く。 何回か試してバグをとりのぞくとうまく動いているようだ。 完成したのは4時前だった。
OSC2005-DOの会場で高橋さんたちとした話。
なぜ私はいつまでたってもテスト駆動アプローチを習慣にできないのか、 改めて考えてみるとやはりドライブ感が原因のようだ。
「なにかを作りたい」と思った時、 テストファーストなら「そのなにかをテストによって表現する」わけだが、 私はその作りたいものがコードとして脳裏に浮かぶのだ。 そこでテストを書いていると、その浮かんできたコードがどこかへ逃げてしまうような気がする。 脳裏に浮かんだコードが消えてしまわないうちに、 素早くタイプして書き留めてしまわないといけない。
いわば「イタコ系プログラマ」。
いや、言い訳なんだけどね。とりあえずコードを打ち込んでからでいいから、 ちゃんとテスト書こう。
末娘が熱が出たとのこと。突発性発疹の疑いとか。出張中に限ってこんなことが。
朝起き出して移動。夕べ遅かったので眠い。 教会の公式ページから札幌にある教会を探し出し、 その中で一番接続の良さそうな白石区にある白石ワードへ。
しかし、地図で見ると近そうだった白石ワードの教会堂までの距離が意外と遠い。 後で聞いたらもっと便利なところがあったようだ。
北海道の教会に集うのはまるっきり初めての経験だったのだが(前回は日曜はなかった)、 まあ、全国どこでも教会ってのは大差ない。 まあ、アメリカでも大差ないんだから当然といえば当然なのだが。
札幌の教会は神権会・扶助協会からなのね。 道に迷ったせいもあって少々遅刻してしまったのだが、 温かく迎えてもらった。
白石ワードは40名ほど。以前は90名くらいの出席があったそうだが、 札幌でもドーナツ化が進んでいるそうで、 転出が多いのだそうだ。事実、今日も3人が転出するとのことだった。 ま、結婚やら留学やらおめでたい理由ではあるのだけれど。
監督から「まつもと兄弟も引っ越してきませんか」と誘われた。 うーん、北海道は食べ物はおいしいけど、冬がなあ。 北海道人は口を揃えて「家の中は寒くない」と言うけれど、 ずっと家の中にいるわけではないからなあ。
聖餐会終了後、なぜかデザートが。杏仁豆腐おいしかった。 こんなに待遇がいいなんて。単なる偶然だけど。
現在、宣教師をしている双子の知人の片方は北海道で働いている。 白石ワードの宣教師に尋ねてみたところ、 隣の厚別ワードで働いていて、同じアパートなのだそうだ。 よろしくと伝えておく。
その後、新千歳空港から出雲空港へ。 めちゃめちゃ疲れた。
テーマは「ブロックと高階関数」。いや、「ブロックとクロージャ」の方がよいかな。 いずれにしてもRubyのブロックの力を紹介しようという試み。
ここまで「オブジェクト指向」、「継承」、「動的型」とやってきて、 急に対象のレベルが変化したような気がするが気にしない。
しかし、集中講義の準備に時間がとられて(いや、正確には気がとられて)、 なかなか進まない。だからといって講義の準備が進むかというとそうはならないのが不思議だ。 いや、逃避しているんだけど。
一昨日完成したRast対応morqのメールボックスに入っているメールに Rastのインデックスを付ける作業を行う。 現在900MBほどのメールを持っているのだが、 インデックスを付けるのが遅い遅い。このペースだと24時間くらいかかりそうだ。
一度全部インデックスを付けてしまえば、 あとはインクリメンタルだから気にならないんはずだけどね。
「二兎を追うものは一兎も得ず」ということわざがあるが、 まさにその通り。原稿と講義の準備の二兎を追おうとすると 逃避行動の時間が突然増加するのはなぜだろう。
逃げているからです。
このままではどちらもマズいことになりそう。
逃避行動のハックは進む。 今日はMorqのRast対応が完了した。今まではEstraierとの二本立てだったが、 もうRast一本に集約することにした。 統合が終われば、最初からmorqで使うことを考慮して開発してもらったRastの方が ずっと使いやすい。高速だし、属性検索はできるし。
ありがたいのは、
というような検索条件ができるようになったことだ。 今までは単語単位の検索しかできなかったからね。
便利になったのはうれしいけど、「今日までにどうしても必要」という話はなくなったみたい。 じゃあ、予定通り来週作業にすればよかったのか。原稿やらスライドやらをうっちゃって作業したのに。
いや、短に逃避してただけか。
36時間くらいかかって900MBのメールを取り込み終わった。
が、その直後、データベースに間違いがあったことが判明。 インデックスの日付の形式が間違っていた。
やりなおし。がーん。
しかし、今度は雄也くんに聞いて、データベースをフラッシュする頻度を下げる。 これでメモリを消費して、時間を節約できる、はず。
なんとか講義のスライドは書いたけど、 2日フルの講義なんかしたことないから分量の感覚が掴めない。 全然足りないかも。
フラッシュ頻度を下げたら一晩で終わっていたよ。 900MBのメールのインデックスが1GBってのは多いのか少ないのか。 インデックスのサイズが大きくなったら、動きの機敏さがどうなるかと心配したけど、 全然問題なし。
Estraierの名誉のために言うと、以前のmorqで検索が遅かったのは、 私の書いたEstraierのインデックスを読み込むライブラリが遅かったせいで Estraierのせいではない、念のため。
前にも書いたように、Rast対応になったmorqは快適に動くのだが、 あまりにもたくさんの候補が出るとさすがに遅い。そこで、query文字列に
という拡張を行った。
打ち合わせ。仕事が入りそう。
ただ、Linuxをプラットフォームにしているとは言え、 我が社としては全然経験のない分野であるのがちょっと不安。 また、仕事の結果がオープンソースに反映される可能性もなさそうなのもちょっと残念。
しかし、それなりの額で恒常的な仕事になりそうなので、 経営的には大変ありがたい。タイミング的にはちょうどいいといえばちょうどいいのだが。
しかし、明日の集中講義だが、登録が90人もいるというのはどういうこと?
もっとこじんまりとした感じだと思ってたのに。 グループ分けして活動しようとか思ってたけど、無理かなあ。
しかも、情報以外にも、人文とか自然とか芸術とか医学とかの人が登録してるんですけど。 与しやすいと思われたか。
というわけで、本番。
何度も不安に思っていた通り、朝から夕方までずっとというのはかなりしんどい。 学生たちも(一部を除くと)興味があるんだかないんだか。
しかし、午後、レポートを書いてもらったのだが、 ほとんどの人がごくまじめなレポートを書いていたのに感動した。 私が学生のときにはそんなにまじめに対応できてなかったような。
何時間にもおよぶので喋った内容は自分でも覚えていないんだが、 とりあえず用意したスライドはここ。 実に80枚もある。が、再利用したものも多い。さすがにゼロから書けないっすよ。
なんかCOBOLのサンプルプログラムに間違いがあると指摘があったのだが、 COBOLわからないので判断できないよぉ。すいません。
昨日はえらい部屋が暑かったのだが、今日は冷房が入っている。 なんでも気温が28度を越えないと空調が入らないのだそうだ。 大学ってのはそういうもんなのかね。
で、二日目。学生たちの役に立ったかどうだかは分からないが、 一部寝ていた人を除いては、真剣に聞いてくれていたようだ。
スライドはここ。 今日は機能よりは分量が少ない。
最後にレポートを書いてもらったが、これまたなかなか有意義なものが多かった。 学生たちに感謝したい。
後は採点があるのだなあ。
さすがに毎晩4時までスライドを書いていたので眠たくなる。 すこしうとうとした後、ACな人々として知られるSoftEther社関係者と夕食に。 非常に有意義な時間であった。
しかし、楽しそうな学生生活だなあ。 私の学生時代はそこまで楽しそうではなかった。 図書館と研究室にこもりっきりだったし。 ちょっと後悔している。
ま、それが今の私を生んだのかもしれないけど。
これらACな人々はだいたい僕が大学に入った頃に生まれている。 ジジイになるはずだ。
今回の宿泊先はホテルニューたかはし竹園店。
けっこう古い建物で、汚れてたり痛んでたりするんだけど、良い点がたくさんあった。
バス停から近い
つくばセンター行き高速バスの竹園一丁目バス停からすぐ。 機動力の弱い出張者にはありがたい。
無線LANによるインターネットアクセス
やっぱ、ネット接続がないと生きていけない。
明るい室内
どうしてホテルってばあんなに暗いんだ、といつも思っていたのだが*1、このホテルはちゃんと明るい。
大浴場
洋式バスが嫌いで。で、今回は毎晩スライドと格闘していたので、 深夜にひとりで入ってたのだが、広くて気持ちが良い。
また泊まりたいものだ。
*1 「白人は明るいのが苦手で、日本はマネしてるだけ説」を考えている。実際アメリカではレストランも個人宅も暗いし。ヨーロッパは知らないけど。
で、高速バスで帰る。上りがあんなに渋滞するなんて知らなかった、いや、忘れていた。 そういえば、高速バスがめちゃめちゃ遅れて待ち合わせに大遅刻したことがあったな、学生時代に。 まあ、この時間にそうとう原稿が進んだからいいけど。なんとか間に合いそうな気配。
で、空港についてぼんやりしていたら(もうだいぶ疲れている)、 ゲートを通る時間がぎりぎりになった。うっかりカバンにハサミを入れていたので、 放棄するはめになった。ほんとはひとつカバンを預けるつもりだったんだけどなあ。
自宅に帰り着いたら、疲れきっていたので寝てしまう。 さすがに全日2日はつらいっス。
著作権保護期間延長は文化振興につながらないという話。
作者死後、保護期間中の作品(の多く)がいかに人々の手に届いていないかということを データとともに示した記事。説得力がある。
一部の人の利権のためにどんどん保護期間を延長するのは止めてほしい。
寝坊してしまった。出張の疲れが溜っていたのだろうか。 本当は今日は司会だったのだが、 どたばたしているうちに教会に着いたのは集会が始まる15秒前だった。
司会は代わってもらう。すいません、来週はやります。
青少年クラスを教える。 テーマは試練。
をベースに試練に遭った人やそれを乗り越えた人について。
夕方から出雲、松江、米子の人が集まってファイヤサイド。 こういう試みはひさしぶり(もしかして初めて?)なので、 なかなか面白かった。でも、なんか記憶がとぎれてるんですけど...意志力とか自制心とか、いろいろ欠けているな。
で、結局、朝4時までかかって完成させた。 約束が守れたのはうれしい。
いやあ、北海道とか筑波の講義とか重なって、 一時は本当に大丈夫だろうかと思ったのだが、 なんとか完成した。でも、今月はちょっとページ数が少ないみたい。 あと、この連載の今までの回ほど「ぶっとんでない」っていうかなんていうか。 おもしろみは少ないかも。
でも、ブロックはRuby固有だし、 これについて突っ込んで解説してくれる人も他にいないと思うので、 まあ、資料的価値がないわけじゃないかな。また自画自賛だけど。
眠い。午前中は寝るぞ。
で、午後になって、 次女と長男のピアノ発表会。 私自身が楽器ができないから子供にはやらせたいと思ってたんだ。 それなりに期待に応えてがんばってくれているからうれしい。
まあ、芸術という観点からは演奏はミスばかりだし、 曲想がうんぬんというレベルではないのだが、 そこはそれ、親馬鹿のためのイベントだから。
喜んで(後で見返しもしないのに)ビデオに録ったりする。
第8号公開。
なんか変な連載があるけど、気にすんな。
「原稿は何ページですか」というメールが届く。 どうやら、必死に書いたメールは届かなかったかスパムに紛れたかしたらしい。 慌てて再送した。
だんだんメールシステムの信頼性が下がっていく...。
御世話になっている人から紹介してくれ、との依頼。
情報科学若手の会は,情報科学に携わる学生,若手研究者,社会人のディス カッションと交流の会です.幅広い分野から参加者を募り,互いの交流を深める ことで新たな発想が生まれることを目指しています.インフォーマルな雰囲気で すので.これから研究を始めるという方も是非ご参加下さい.
- 招待講演:
- 松井充 氏 (三菱電機)
暗号アルゴリズム MISTY の開発者- 日程:
- 9月10日(土)〜12日(月)
2日間のみの参加可- 場所:
- 厚生年金会館 ウェルシティ湯河原(静岡県熱海市)
http://www.kjp.or.jp/hp_26/- 募集人数:
- 30人
- 参加費:
- 食費・宿泊費込
学生 15,000円
社会人 18,000円
(遠方からの参加者には交通費補助をする予定です)
ところで暗号にKASUMI(ポケモンに登場する女の子の名前)やら、 MISTY(海外版ポケモンでのKASUMIの名前)やら名付けたのはこの人なのだろうか。
greenteaさんから今年も御中元が届く。 この場を借りてお礼したい。どうもありがとうございます。
オープンソースソフトウェアを開発しているという理由で 御中元をいただいているのは、日本でも私だけのような気がする。
先日の「オープン ソースカンファレンス2005 in Hokkaido」のレポート。
なかなか上手にまとまっている。恥ずかしいが私の写真もあり(あいかわらず正面向いていない)。
JVM上で動作するスクリプト言語がまたひとつ。
ま、いろんな言語が登場するのは良いことだけど、Sleepに関して言えば すくなくとも外見からはあまり魅力を感じない言語ではある。やっぱ、Perl(の文法)に影響を受けるとどう転んでも美しくない。
しかし、MYCOM PCは(Java関連の)オープンソースソフトウェアを紹介してくれるのは ありがたいけど、情報元へのリンクがないのがいただけない。 たとえばSleepだったら「The Sleep Scripting Project」への リンクがあってしかるべきではないだろうか。
tDiaryがアップデートされてCSRF対策が行われたのはよいが、 おかげでtdiary-mode.elから更新できなくなっていた。 http.elとtdiary-mode.elの最新版を入手し、 変更点をマージした。
手元のものは
という変更が加えられている。
先日来考えているlambdaについてだが、 以下のようなものを考えている。
yacc記述はなんとかなりそうだが、メソッドの引数部分と ブロックパラメータの部分の実装が違いすぎて、動かすのは大変そう。
lamdaの記号をどうするかという問題はあるものの、 実際に動かしてみないとイメージが掴めないので、 ごそごそとparse.yをいじってみる。 半日ほどのハックで動くようになった。
NODE_ARGSの構造が変化してしまった。 Yarvに迷惑がかかるかな。
とりあえず、動いてはいるようだ。 これをコミットしたものか。
で、実装した新lambdaはlambdaに対応する記号の部分だけ lexerをいじれば簡単に変更できる。
今のところ、最初の案の通り「->」を使っているのだが、 「関数型言語の文化圏からすると引数の前に -> が来るのは激しく気持ち悪い」という指摘も受けている。ここで案についてまとめておこう。
もともとの案。実はPerl6から来ている。Perl6ではRubyのブロック相当を実現する文法として、 「->」が使われており、たとえばfor文が
for list -> x { ... }
のような文法になっている。「->」でパラメータに代入しているというイメージか。 また、ここから派生してクロージャは「-> x { ... }」で表記している。
Perl6はRubyと文化圏が近いため、参考にするのは悪くない、ような気もするが、 そもそもPerl6はいつ実用化されるのか、とか、使われないんじゃないだろうか、 とかいう懸念もある。この記法はブロックとして使われるときには(代入を想起させるので)、 そんなに悪くないんだけど、単体のlambda式として考えると
proc = ->(x, y) { ... }
という記法で、あんまり関数っぽくない。
Haskellではlambdaにバックスラッシュが用いられている。 これは「\」がギリシャ文字のlambda(λ)に似ているから、らしい。
それは分からないでもないが、UNIX文化圏ではエスケープの意味が強すぎるので 受け入れられないような気がする。
proc = \(x, y) { ... }
では、エスケープされた括弧というイメージが大きすぎるのではないか。 文化の違いというのは大きいものだ。
あと、フォントによっては「¥」マークになってしまうのも痛い。
じゃあ、バックスラッシュ二つ重ねるのはどうだろう。
proc = \\(x, y) { ... }
ひとつだけよりはマシのような気がする。が、
ary.each \\(x) { ... }
という使われ方を考えると、視覚的なヒントが少な過ぎる。 この記号を採用した場合にはlambdaとしてだけ使い、 ブロックの記法には使わないようにすべきだろうな。
この案も「¥」マーク問題を無視できない。
ま、結局はブロックとlambdaのどちらに重きを置くかという点のような気がする。 もともと現在のlambdaのパラメータ指定がメソッドの引数と同一でないのが最大の不満だったので、 lambdaの方を強調すべきなのかもしれないが。
現時点では、各案に順位を付けられるほど考察が進んでいない。
長女の吹奏楽の発表会で県民会館へ。
ついこの間始めたばかりなのにもう発表なのか、と思わないでもないが、 一生懸命やっているようだった。もっとも、彼女の演奏している音が識別できたわけではないが。 団体だとその辺は有利だよな。本人曰く、「めっちゃ緊張した」そうだが。
同じ1年生でもパーカッションの娘は、出来がはっきりわかっちゃうから大変だよなあ。
うちの家族は全員揃ってあまり片付けるのが得意ではない。 だから、だんだんうちの中が散らかって来てしまうんだけど、 今日は(妻が)思い立って全員で掃除することにした。
家族の中から一人ずつ10分交替で末娘の面倒を見て、 残りの家族が散らかった書類の類を集め、 おもちゃを片付け、出しっぱなしのケーブルやらガジェット類をしまい、 新聞と広告を束ね、ついでに邪魔になってたソファを移動させた。
夕方は今週当番になってた教会の掃除。 中はずいぶんきれいだったので、トイレを掃除して、 それから教会堂の周辺の落葉とかを片付けて、終わり。
みんなでわいわいやると掃除もそれなりに楽しい。 大家族*1ならではだろうか。
*1 世間的には4人子供の6人家族は大家族らしい。個人的には全然大きいと思っていないのだが。せめて6人は子供がいないと
普段通りの日曜。
復活して完全な身体を得たはずのイエス・キリストの手足脇に傷が残っていることに気がつく 小学生の鋭さにも感心したが、そこから「イエスさまかわいそう」と感じ、 また「イエスさま大好き」と思える感受性には驚嘆した。
年に一度の健康診断。実は前回予約の日をすっぽかしてしまったので、 今日は忘れないでくださいと念を押されていたのだった。 今年は「当たり年」なので胃カメラを飲むことになってるし。
で、いろいろと待たされながらも、
などなどをこなす。いやあ、疲れた。
最近の胃カメラは鼻から入れるんだねえ。 珍しい経験をした。
やや脂肪肝気味と指摘された以外は健康であった。 自家製フォアグラかぁ。
届いた。予約の関係でバンクーバー空港に9時間以上も滞在する必要がある。 格安チケットだから原則として便の変更ができないんだよなあ。 一応、空港で交渉してみるつもりだけど。
一昨年バンクーバー空港を利用した時には無料で無線LANが使えたけど、 2年経っていると状況が変化しているかもしれないよなあ。 ネット+電源があればどこにいても大抵のことはできるのだけど。
こちらもそろそろ予約しないとな。 今回はRubyCentralが航空料金を負担してくれるそうだ。 自腹で行こうという人も多いのに、ちょっとだけ心苦しいところもある。
なお、David Alan Blackから依頼を受けたので以下のページを紹介しておく。
RubyCentralはRubyConfのスポンサーを募集しています。
今日は初校の修正。日経Linuxは書いた時が集中の直後で、 気が抜けて分量の計算が間違っていたせいか、 3/4ページ、75行も削る必要があった。せつない。
結局、図をふたつ削って説明を一部はしょってなんとか収めた。
もうひとつの原稿(技術評論社)もなんとか片付いた。
台風が近付いているので中止かと思われたプール当番だが、 台風はこちらには少しも影響を与えずに去っていってしまったので、 無事行われることになる。
子供達を集めて、ラジオ体操させて、 プールに入れて、溺れていないか監視して、 20分毎に休憩させて、2時間。
暑い。
しかし、先日の自身もそうだが、関東地方になにか大きなことがあると ラジオもテレビもニュースでそればかりとりあげて、 こちらにはまるで実感のないことも多い。 まあ、現時点では実質的に日本≒東京近辺だからしょうがないのかな。
あんまり暑いので散髪した。ばっさり。
結局、使ってみないことには良いのか悪いのかイメージできないだろうと 勝手に推測してPerl6式の「->」のままコミットした。 反響や如何に。
私は別にframeとか欲しくないな。フレーム間のフォーカスの移動があんまり好きじゃないし。
でも、確かに毎回各フィード毎に「広げる」をクリックするのはかなり億劫なので、
http://www.bloglines.com/myblogs_display?all=1
みたいに全部広げた状態で一気に見れるとありがたいなあ。 クリップとかは使ったことがないから分からない。
4822221059
午前中、島根県立図書館に行こうと思い立つ。 冷房は効いてるし、本はたくさんあるし、駐車場はタダだし。 しかも無線LANまで使える。
で、何冊か見付けた本の中の一冊が 『4822221059』。 著者はIBMのオープンソースエバンジェリスト。 2003年の本だからあまり新しいとはいえないけれど、 まあ面白い内容であった。
この中で、私と意見が違うなと思ったところがあった。ライセンスの選び方として、
と解説されている(p.233)。これは最近の私の考えとはまるっきり反対方向だ。
私の今の考えでは
ソフトウェア無料を目指すならGPL
「無料」はオープンソースにとっても、フリーソフトウェアにとっても重要な目的ではなく、 目指すものでもない。そんなものを目指す人がいるのかかなり怪しいが、 もしいたとしてもGPLでもなんでも好きなライセンスを選べば良いと思う。 OSI準拠の方が良いと思うけど。
商用ソフトウェアの価値を上げるならBSD的ライセンス
「GPLは無料で自由であけっぴろげの世界を目指すライセンスなので、こういった目的には使えない」そうだが、この時点でGPLに対してなにか勘違いがあるような気がしないでもない。 MySQL ABやTrolltechのやってることはオープンソースで商用ソフトウェアの価値を上げることだと思うのだが、どちらもGPLだ。
もっとも、リンクして使ってもらってナンボのライブラリとかプラグインとかは BSD的ライセンスの方が向いている、というのはあると思う。
ソフトウェアの維持をコミュニティ化するなら、非GPL
「(自社開発のソフトウェアにGPLを適用すると)二度と自社の商用ソフトウェアの内部に転用できなくなることを覚悟する必要がある。ソースコードをGPLにするとはそういうことだ」とある。これは完全に勘違い。 GPLを適用しようがなんだろうが、自分のコードをどうするかは著作権者の自由。 コントリビュートされたコードの扱いについてだけは注意する必要があるが。
自社でライセンスを作るのもあり
2003年ころはまだのどかだったんだろうか。たった2年前なんだが。 これはお薦めしない。絶対に。
独自のライセンスは他のライセンスとの組み合わせの適否判断が困難である。 結局、使い勝手が下がってしまう。 ライセンスという非技術的理由で使えるものが使えなくなってしまうのはもったいない。
ま、そんな感じで。
追記:
読んでいるうちに気になる表現が見付かった(p.62)。
フリーソフトの語源は「フリー」な「ソフトウェア」という言葉である。 「フリー(free)」という言葉には「無料の」という意味と 「自由だ」の両方の意味があるが、 日本では基本的に「無料の」という意味だけが適用されていると思われる。
<中略>
ところがフリーソフトを初期から始めた人たちのなかには、 「フリー」を「自由な」という意味で始めた人たちもいた。 GNUの創始者であるリチャード・ストールマン氏は....(略)。
それはともかく、 日本ではフリー・ソフトウェア、あるいはフリーソフトという言葉は 無料のソフトウェアということで ここでは話を進めたいと思う。
うーん、ストールマンが怒り狂いそうなことをさらっと書いてるなあ。 「自由なソフトウェア」を無視してる(知らない)わけじゃないのに、 わざわざ「無料のソフトウェア」扱いしてるし。
書かれた時点では分からないけど、2005年時点でお薦めできるような内容ではなさそうだ。 この機会に他のオープンソース本も見てみるかなあ。
今度の『るびま』の連載で解説する予定なんだけど、 私の言語設計はCLU(より正確には久野さんのbitでのCLUの解説記事)から大きく影響を受けている。 その原則のひとつが、「ローカル変数のシャドーイングを許さない」である。
スコープのネストによって変数の意味が変化するのは悪である、という原則なのだが、 他の原則とは違って、これには「ちょっと混乱を招く可能性がある」というわずかな悪影響しかないわりに、 カット&ペーストによって名称が重複した時に変数名の書き換えが強制されるというデメリットがある。 自発的に書き換えるならともかく、処理系に強制されると腹が立つ。
いろいろ考えたのだが、この原則は破棄した方が良さそうだ。 ただ、良い面もあるので、-vオプションを付けたと来に警告くらいはしても良さそうだけど。 将来、警告にレベルを追加したらかなり高いレベルで初めて警告されるようにする程度だと思う。
HikiをCVS版最新にアップデートしたらhiki-mode.elが動かなくなった。 どうも、link URLが変化してしまったせいでhiki-fetch-indexが無限ループするようだ。で、 hiki-fetch-indexの正規表現を以下のように変更した。
"<a href=\"[^?]*\\?\\([^\"]*\\)\">\\([^<]*\\)</a>: \\([^<]*\\)</li>"
要するに「?までスキップ」する正規表現にしたわけ、ついでにre-search-forwardもwhileの条件に加えることと、ifで行っていた「?」のスキップが不要になったので、こんな感じ。
(while (and (equal (char-after) ?<) (re-search-forward "<a href=\"[^?]*\\?\\([^\"]*\\)\">\\([^<]*\\)</a>: \\([^<]*\\)</li>" nil t nil)) (setq indexes (cons (list i (hiki-http-url-unhexify-string (if (= (length (match-string 1)) 0) "FrontPage" (match-string 1)) hiki-coding-system)
うちに帰ったら、子供が一人増えてた。
いや、姪っ子が泊まりにきていたのだが、一瞬びっくりした。
「これで大家族だね」とか「いや、大家族にはあとふたりは欲しい」などと勝手なことを言う子供たち。
CNETの記事に関連して、 分室に記事を書いた。
補償金分配のしくみを透明化してから出直してこいって感じ。
488648719X
先日の『オープンソースがビジネスになる理由』にひきつづいて、 今度は『488648719X』を眺めてみた。
あんまり時間をとっていないので、良いとか悪いとか断言はできないけれど、 作者の人たち(秋本 芳伸さん, 岡田 泰子さん)は「フリーソフトウェア」の定義を間違えちゃったみたい。 フリーソフトウェアは「派生物もフリーソフトウェアでありつづける必要がある」と 明記されているので、どうやら彼らの定義ではフリーソフトウェアとは GPLを適用したソフトウェアのことらしい。
実際には「4つの自由」を保証する(ライセンスが適用された)ソフトウェアであれば フリーソフトウェアなので、たとえば派生物に対して強い権利を主張しない BSD系ライセンスのソフトウェアもフリーソフトウェアである。
あと、気がついたのは、ソフトウェア全般やオープンソースに詳しくない人にも 分かるようにそれなりにていねいに説明してあった。ソースコードとはなにか、とか。 初心者向けの文章が書けるということはそれだけで大したものではある。
次にチェックするなら可地さんの『4534039050』かな。でも、田舎の本屋や図書館にはなかなか置いてないんだよな。
さらに午後は買いものへ。業務用商品のたくさんおいてある店にいってみたのだが、 妙なもの(食用金箔とか)や大きいもの(桜でんぶ1Kgとか、たこ焼き粉10Kgとか)が多く、 見ているだけでも楽しかった。あと、ドリアン。輸入可能になったとは知らなかった。
で、自宅で肉焼いて食べる。 人数多いからたくさん食べる。
先日の北海道での影響を受けてジンギスカン用のラム肉を買ってきたのだが、 息子は一口しか食べなかった。やっぱ羊はダメらしい。 娘たちは、「おいしい...でも、複雑」とか言ってた。
デザートに桃。9ヶ月の末の娘にも食べさせてやろうと、かけらを器にとってすりつぶそうとしていたら、 一瞬の隙をついてまるごとの桃にかぶりついていた。 あんまり一生懸命かじりついているありさまがおかしいんでみんなで笑っていたら、 あれよあれよと言う間にぜんぶ食べてしまった。よっぽとおいしかったんだねえ。
びっくり。
そういえば下の歯がわずかに顔を覗かせていた。
日曜はあまり技術ネタは入れない方針なのだが、今日は特別。
朝、新聞読んでたらこんな記事が。リンクはAV Watchから。
2004年4月からBSデジタル放送と地上デジタル放送に導入されている「コピーワンス」が見直されることとなった。29日に開催された総務省情報通信審議会で中間答申が提出され、コピーワンスに関して、今秋より検討を開始、年内を目処に結論を出す予定が明らかにされた。
審議会では、2011年のデジタル放送全面移行を推進するにあたり、「複製は私的録画の範囲内」という観点から、「コピーワンスの現行の運用を固定化する必然性はなく、私的利用の範囲で視聴者の利便性を考慮して運用の改善に関係者一体となって対応していくことが必要」と指摘。
HDDレコーダの普及拡大にあわせて、アナログ放送のルールによるダビング/編集になれた視聴者が急増しているが、「こうした状況下で視聴者の不満を放置すれば、2011年に向けた受信機の普及にとって大きな障害があるおそれがある」とする。
だそうだ。私が今まで書いてきたことが少しでも影響があったとは思わないけれども、 少しはマシな世の中になりそうなのが喜ばしい。
しかし、
そのため、9月をめどに関係者による検討の場を設け、対応に着手、年内に結論を出すことを目標に活動を開始する。放送事業者では、「コピーワンスの現在の運用にこだわるものでなく、私的録画の範囲で、視聴者の利便性のためコピーワンジェネレーションの運用取り決めの見直しに対応する」としており、具体的な方策としては「ムーブが完全に行なわれてからオリジナルを消去」や、「私的利用の範囲に限定される家庭内IP伝送」などについて技術的に実現する方向で検討する。
とあるように、実際には「コピーワンスフラグは原則使わない」という理想的な状況ではなく、 「原則コピーワンス。運用がちょっと柔軟に」くらいになる可能性もあるので、 予断は許さない。
「今日こそは司会」と思ってたんだが、また違った。おかしいなあ。 どうやら来週らしい。
日曜学校の時間、末娘をだっこして歩き回りながらレッスンを聞いていた(あんまり集中できなかった)以外はごく普通の日曜日。
神権会のテーマは「ポルノグラフィー」。こういう具体的なテーマだと気恥ずかしくなってしまうが、 最近のモラルの低下やら家庭の崩壊などを含む様々な問題に取り組むにあたって 重大な因子ではある。