あと、「Schweitzer」や「ミシ」をはじめ、全部よかったと思う。なんというか、煮えきらない感じの演出が。0.9のDTDをXMLカタログでさしかえるDebian的には上記の操作を/usr/sbin/update-xmlcatalogでやるのが正攻法らしい。0.91のDTDをXMLカタログに登録する操作を、DebianやUbuntuで用意されている機構でやりなおしてみる。このへんを参考にした。DTDを置くディレクトリを作るところと、DTDをダウンロードするところまでは同じ。カタログは自分で作らずに、とりあえずDTDだけコピーする。/usr/local/share/xml/schema/rssで、update-xmlcatalogを使って、/usr/local/share/xml/schema/rss/catalog.xmlを生成する。/usr/local/share/xml/schema/rss/rss-0.91.dtd続いて、それを指す/etc/xml/rss.xml(パッケージというらしい)を生成する。update-xmlcatalogのソースを見るかぎり、--packageであれば、--idで指定した文字列はXMLカタログ中で「publicStartString」扱いとなるようだ。RSS"最後に、パッケージを指す大元の/etc/xml/catalogを変更する。update-xmlcatalogのソースを見るかぎり、--rootであれば、--idで指定した文字列はXMLカタログ中で「publicStartString」扱いとなるようだ。RSS"これで、前回とほぼ同じ結果になった、と思う。0.9のフィードのパースエラーが起きていたので、調べてみた。面倒なのでwiresharkで調べてみたら、libxmlのパーサーはDTDのURLに本当にアクセスしていた。避ける方法ぐらいあるんじゃなかろうかと思って、libxmlやXMLについて付け焼き刃で勉強してみた。XMLにはXMLカタログという機構があって、リソースの参照先を指定したり変更したりできるらしい。0.91のDTDの参照先を設定してみる。以下、Debianでの例。DTDとXMLカタログを置くディレクトリを適当なところに作る。/usr/local/share/xml/schema/rss次にDTDをダウンロードする。http://www.rssboard.org/rss-0.91.dtd以下のようなXMLカタログを作る。ここではcatalog.xmlという名前とする。uri="file:///usr/local/share/xml/schema/rss/rss-0.91.dtd"/></catalog>カタログとDTDをコピーする。~>と</catalog>の間に以下のような行を追加する。catalog="file:///usr/local/share/xml/schema/rss/catalog.xml"/>とりあえず、PerlのXML::RSS::LibXMLのテストケースは通るようになった。追記2008-09-21:Debian的には上記の操作を/usr/sbin/update-xmlcatalogでやるのが正攻法らしい。0.9のフィードのパースエラーが起きていたので、調べてみた。試しにこんなRSSファイルを用意する。version="0.91"></rss>このRSSファイルをこんなPerlスクリプトで読み込む。};XML::Feed->parse(\$content);こんなエラーになる。subset」というメッセージ文字列は、libxmlのparser.cにあるようだ。DTDのURLを変えてみる。version="0.91"></rss>今度はエラーが出ない。ちなみに、ブラウザでhttp://my.netscape.com/publish/formats/rss-0.91.dtdにアクセスすると、http://netscape.aol.com/にリダイレクトされる。最近のOpenOffice.orgではVBAのコードがだいぶそのまま動くようになっているということなので、Calcで試してみた。簡単なサンプルを動かしてみる。Sub実行したらエラーになった。BASICランタイムエラーSubまたはFunctionプロシージャーの未定義。ググってみると、VBASupportというオプションを設定するといいらしい。Basicを使う人には基本なのだろうと思うけど、ビギナーの自分はハマったのでメモしておく。思っていたらどうやら最近新訳で出たらしい。出た当時にけっこう気にいって今も本棚にあるのだけど、その後読み返してなかったので、新訳を買って20年ぶりに読み直してみた。物語は、夏休みに海辺の町にやってきた少年が、その町の少女と恋をする、一夏のボーイ・ミーツ・ア・ガールの物語。海でのちょっとした冒険や、同世代の嫌な奴との対決、両親との葛藤、少年から大人への成長といった要素が詰まった、実際にはありもしなかった青春の日を思い出させるようなさわやかな物語となっている。基本的にはすごく甘い話なのに、くどさを感じなくて、パステル調っぽい表紙がうまくあっていると思う。...という部分は実は再読するまで記憶になくて、話題になってるラストのどんでん返し以降のパートだけ覚えていたりする。フェンスと小屋のシーンとか。読むと、伏線がうまく張りめぐらされているのに感心した。ところで、冒頭で主人公が回想として語り出しているのは、どの時点の視点なんだろう。ラスト?あと、今になってみると、脇役の人々が、控えめながらもいい味を出しているのに気づく。いうわけで、月並な言いかたながら、よかった。「だいじなのは、お話の裏にこめられた意味なんだよ、ドローブ少年。お話ってのはある目的があって語られるもので、その語られかたにもやっぱり目的がある。お話がほんとかそうでないかなんてのは、どうでもいいことなんだ。詳細を見るあっ、黒田硫黄の単行本出てたんだ。「鋼鉄クラーケン」あたりっぽい感じの放浪というか冒険というかそういう物語。/...すみません、言ってみたかっただけです。bashで書いてみました。前置き:シェルスクリプトはLispであるみなさんご存知のとおり、シェルスクリプトはLispの一方言です。空白で区切った要素からなるリストを基本構造として、それを評価すると先頭が関数(手続き、コマンド)と解釈されます。以下のシェルスクリプトをbashやPOSIX-shで実行すると、現在の日時が表示されます。$list)))という線で、クロージャーとかメタプログラミングとかの方向で実装してみます。注意In(入力)は未実装ですちょっと複雑なラムダ計算(grass.elのサンプルにあるgrass-sample-helloでも)をすると、すぐマシンリソースを食い尽くしますので、注意してくださいtrueとfalseは、わかってないので適当ですこのあたりの不出来さが、タイトルの「悪酔い」の所以です。次のようなプログラムをパースします。wwWWwWWWwvwWWwwWwwwWwwwwwWwwwwwwwwすると、次のような文字列を生成します。8;';これはシェルスクリプトでもあります(言語内DSL?)。先頭のAbsを実行すると、次のような文字列(クロージャ)が生成されてスタックに積まれます。xlambdaの後に、未束縛の引数の数、スタック上のクロージャの位置、ボディ、(束縛済みの引数...)、「x」が続く、という書式です。これはシェルスクリプトでもあります。Appは、スタックから関数としてクロージャ文字列を参照すると、最後の「x」の前に引数を追加してから、文字列を評価します。$1fiまとめGrassをシェルスクリプトに変換して評価するとシェルスクリプトが得られ、それを評価すると...という方法でGrassを実装してみました。前述のとおり、サンプルも実行しきれない効率の悪さなので、awk版を元に作り直したほうがまともなものになると思います。そもそもが、「シェルスクリプトはLispの方言」「自分を評価することができるんです」の2ネタをやりたいがためのネタ実装ですので、ご了承ください。そうそう、「シェルスクリプトはLispの方言」はもちろん冗談ですので、念のため。$s)a\bcあーよかった。いうことを自分は知らなかったのでメモ。詳細を見る佐久間象山って幕末の偉人らしいのだけどそのへんの知識がなくてよく知らなくて、マンガ「風雲児たち」で強烈な俺様キャラを発揮しているのが(見ているぶんには)面白い。本書を書店の店頭で見て、読んでみた。いう伝記では、人世訓とかビジネス訓とか美談とかが期待されるのだろうし、著者もそういう方向に持っていこうとしている様子が見えるのだけど、やっぱりあのキャラだけあってそうはいかない。逆にそれが面白かった。あと、本書によると、佐久間象山は陽明学(実践主義)を徹底して嫌う朱子学者であり、国際的な視点を持ちながらも基本は尊皇攘夷論者であるというのも興味深かった。詳細を見る銀行やVCに代わって暴力団がベンチャーに資金を提供し、また巨額の資金を元手にデイトレードなどして大きな利益を得ている...という、NHKスペシャルで反響を呼んだ話が、再構成されて書籍になった。前半では主に闇勢力が金を貸したり株取引したりするグレーな話、後半では闇勢力が企業を食い物にするブラックな話と、大きくわけて2つの話からなる。どっちにしても、白紙委任状とか仕手戦とか循環取引とか、怖いですね。いや、よくわかりませんが。以下、本書からのメモ。「伝奇考」を量で越えたんじゃなかろうか。「配線」は、ちょwwその鉄かよwwwと。「九呂古志家の崩壊」は、このシリーズで定番の一つ目ネタで、違う由来を導く話。ぐぐってみると、実際にそういう説があるらしい。「失われた島」は、江戸時代に沈んだ島の伝説を、鉄の歴史を軸に解題する話で、面白かった。詳細を見る同じパターンのくりかえしとはいえ、改めて夢中で読んだ。設定は、刑務所に収監された受刑者が、互いのメシ体験を順番に語り合い、聞き手にゴクリとさせた者が勝ちという、百物語っぽいよくある話。それぞれの話から、苦労したショボい人生が透けて見えるという、演歌的ながら、むしろ落語的なものを感じさせる話芸がいい。今回は第3弾として、317号室編に突入。詳細を見る北京五輪にあわせて、台湾の喰輪杯の話。なにかにつけて各国ネタでセリフを回すところは、お約束か。アメリカのオバチャンが伏線になるようなならないような、はたまたどうでもいいような。詳細を見るちょっと前のドラマ化とか、盗作騒動とか、なにかと話題になってるマンガ。最近定番の裁判員制度ネタではあるけど、「裁判員といっしょ」編が面白い。このシリーズなので、裁判員側に焦点を当てて、リストラ寸前のサラリーマン、キレるオヤジ、自分が冷静で流されないと思っている流されやすい人などを登場させて、下世話な視点から問題点を提起している。「あなた以外の人には代わりができないとかじゃないとダメなんじゃない?」「代わりがきくから困っちゃうんだよっ!」で吹いた。詳細を見る「ヘッドハンティング詐欺」「M&A詐欺」の2編を収録。最近のパターンで、短めの話+それを引き継いだ長めの話で2:3ぐらいにする構成。詐欺師が自分とまったく同じ手にひっかかるって実際にあるんでしょうか、とかいうのはさておき。メモはネタバレなので、続きを読むで。PHP」という流れを見たので、bashでやってみます。Railsを作る」シリーズにしてみます。IFSで分割bashの場合、変数IFSに設定されている文字のいずれかで、forやread、位置パラメータ、配列などが区切られるようになっています。IFSを変更すると影響が大きすぎます。以下の例では何が起きたのでしょうか。Supportもどき)でラッパー関数string_splitを用意しました。result_val=($str)}bashの制約により、結果はグローバルな配列変数result_valに入れて返すという、ださい仕様になっています。ちなみに、bashのlocal変数は動的スコープです。普通に分割もちろんbashを起動して調べてみます。"$e";doneabc$ちなみに途中の空要素は拾われます。.正規表現ってなんですか?(笑)以上、実生活には役に立たなそうな研究でした。Future」に参加してきました。チケット購入者が1,000人以上、来場者でも800人以上が集まり、10時から21時近くまで盛り上がりました。詳細なレポートはすでにいくつか上がっているので、すべて面白かったセッションの中から、自分なりに感じたポイントをいくつか。Updatesセッションがなくなっていました。それもあってか、ちょっと前にブログ界隈で話題になった「プログラムを作る人とアプリケーションを作る人」の分け方でいうと、前者向けの内容が多かったように思います。実装系の話は、言語ごとの勉強会が充実しているからそちらで、ということもあるのかもしれません(ただの憶測です)。フィジカルコンピューティングがアツい「LLでアート」は、正直それほど期待してなかったのですが(ごめんなさい)、見てみたらとても面白かった。画面上の3Dオブジェクトを、加速度センサーの載ったGainerにシンクロさせて動かすデモを、ライブコーディングで見せるとか。試着シミュレーションがまるで鏡のようにできる液晶ディスプレイとか。筋電流を拾って、ダンサーの動きに合わせて音が鳴るとか。Railsで実現する自走式Webサーバー」。Rails)をラジコンカーのシャーシに載せて、フルタッチスクリーン型リモコン(つまりiPhone)からコントロールするというネタを、記者発表ふうに演じて、場内爆笑。Rally」もすごかった。あと、パネルディスカッション「LLで未来を発明する」では、「ユーザーはプログラミングの必要がなくなる」という一連の意見の中で、「CPUがGC(メモリ管理)や並列化などの機能を受け持つようになる」という話があって、未来では言語やOSの開発者は今でいうマイクロコードやHDL相当のレイヤーでプログラミングするようになるのかな、と漠然と思いました。6のRuleとそれによるパーサーの話。6自身の文法を設計できるというような話だったような(英語がよくわかってませんが)。実例として、正規表現のようなパーサージェネレーターのようなソースを見せて、「+-」という演算子を定義してみせたりしてました。あいかわらずメタと対象とを自在に行き来するプレゼンスタイルで、わかったようなわからないような(笑)。ちなみに、プレゼン途中でtakahashi.xulをいじってたような気がします。パネルディスカッション「LLで未来を発明する」では、ひげぽんさんのジョークで「言語大統一理論で“やっぱりLisp”ということに」というネタが出たほか、住井さんが「最近は言語がそれぞれの機能を取り入れあっている」という指摘もありました。パネルディスカッション「古い言語、新しい言語」では、JavaScript/ActionScript上でほかの言語の処理系を作った詳細が紹介。高校生で処理系開発なんてすごいなぁ。LLVMという、いろいろな言語からバイトコードにコンパイルし、各ネイティブコードに変換して実行する汎用言語処理系(?)が解説されました。CのソースからFlashのバイナリに変換するなんてのもあるそうで、Cで書かれたゲーム(DOOM)をFlashで動かす動画がデモされていました(ライブラリはどうしているんだろう)。LTでも、「Unbabel:LLにLLを埋め込んでみた」という発表が登場。1.9とかまで)が笑いをとっていました。フレームワーク」のQ&Aで、Debianで日本のソフトを精力的にパッケージ化しているhenrichさんが、「Debianのパッケージシステムとgemsとの整合性をとるのが大変」という問題提起。最新版を使いたい人はLinuxのパッケージを使わずgemsを使う、という話を経て、逆にMobaSiFをDebianパッケージにどうかという話に発展していました。NewtonScriptってJavaScriptっぽいですね。JavaScriptの元ネタのひとつなんでしょうか(よくわかってない)。次回は同じく中野ZEROで2009年8月29日。「キミならどう書く?」のdd+lsネタで、幸運にも、会場の笑いと「またお前か賞」をいただきました。Yuguiさんの話芸のおかげですね。ありがとうございます。Byb0nerAppendixemasakaフリーター。