2001-03-01(木)
◆ 腰痛
あれ!? 今日は腰が痛くないですよ。治ったみたい。
◆ Ruby関連ツール
使うかどうかは別にして(笑)、256本シリーズで扱っているツール類を一気に導入。Raccと、先を見越して(?)RDtoolを。最近はリファレンスマニュアルのスナップショットがRDフォーマットで配られてるから、RDtoolが必須なのだよ。Jiraiからnosrc.rpmとソースを持ってきてリビルド。ついでにRuby本体も1.6.2-5kになっていたのであげておこう。
それにしても、TDtoolに至るまでに実にたくさんのモジュールが必要である。けっきょく明示されている以下のパッケージを導入。
ruby-1.6.2-5k.i586.rpmruby-amstd-1.9.6-3k.noarch.rpmruby-optparse-0.7.5-7k.noarch.rpmruby-strscan-0.6.1-5k.i586.rpmruby-racc-1.3.6-3k.i586.rpmruby-rdtool-0.6.6-7k.noarch.rpm
ふひー。あ、もしかして、mph.confにJiraiのディレクトリを指定して、
% sudo mph-get install ruby-rdtool
ってすればよかったのでは……。あ、いやいや、Jirai環境じゃないんだから、RPMのrebuildは必須じゃん。やっぱこれでいいのだ(たぶん)。
そんでもって、最新のリファレンスであるruby162-refm.rd.gzを持ってきて、
% gzip -d ruby162-refm.rd.gz % rd2 ruby162-refm.rd > ruby162-refm.html
おお、できましたな。けど、これって巨大な1個のHTMLファイルなんだが(と言っても500KBだけど)。分割するには何か技がいりそうだ。そういえば今月のSoftwareDesignに、前田さんがRD使って日記システム作ってたっけ。あれは逆に、複数のRDファイルからひとつのHTMLを作るものだったけど。
それからRPM化されていないRubyUnitを最新版の0.3.4aに。ちなみに、インストール後はruntest.rbとc2t.rbを/usr/local/binに移動して、.rbを取ってしまいます。
◆ Courier-IMAP
ほんの一昨日、1.3.4を入れたあとにアンテナで監視を始めたとたん、1.3.5に上がるとわ…… >Courier-IMAP しょうがない、入れよう。
2002-03-01(金) 7600歩
◆ Ruby 1.6.7-preview2
preview1の時はテストできなかったけど、preview2が出たのでこっちはお試し。
といっても、今まで使ってたSPECのバージョンを変えてビルドして、入れ替えて、tDiaryが動いていることを確認しただけだけど。環境はSushi。rename.rbが削除されたので、Kondara用SPECに付属のruby-nolocal.patchが一部あたらないのを修正した他は問題なし。
◆ tDiary: 1.4?
ゆうべ#tDiaryで「1.4はいつ出すのか」と聞かれた。そうは言っても、おれはリリース時期を明言して自分の首を締めたりはしないから(笑)。
でもまぁ、計画を書いておくと。
いまのスナップショットが問題なければ、それを1.3.4にする予定。で、その次は記述フォーマットや保存フォーマットの差し替えを可能にするという大改造に取りかかろうと思っているので、1.3.4とそれ以降は大きく変化するはずだ。
……となると、1.3.4をそのまま1.4.0にしてしまった方がいいのではないか。1.4のmain featureとしてはプラグインがあるわけで、バージョンアップには十分な理由だろう。むしろ、安定してきている1.3系をさらにいじるよりは、新しいブランチを起こした方がいいかも知れない。ちょうどSourceForgeに移行したこともあるし。
というわけで、現状のまま1.4にする可能性大。今後の開発計画で完了していないものはそのまま1.4回し……にされたら困るという人は、今のうちにリクエストしておくとよろしいかと。
◆ tDiary: 本日のcommit
mod_rewriteによるURL書き換えに対応するため、anchorプラグインを実装。コイツをうまく使うと、従来の「?date=YYYYMMDD」なんていかにもCGI然としたURLじゃなくて、「YYYYMMDD.html」なんてのが使えるようになる。試しにMary日記に適用してみた。ただし、添付のプラグインはまだ未対応。
これを試すために、しばらくのあいだtDiary.Netが不安定になってしまったことをここでお詫び……って、ここでしてどーする。でもすまぬ。mod_rewriteって難しいなぁ。
これに伴って、myプラグインも実装。mod_rewrite対応してるサイトから対応してないサイトへの引っ越しで、今まで使えてたURLが使えなくなると自サイト内リンクさえ切れてしまうので。ぜんぜん説明になってないが、まぁ、そういうことだ(笑)。使い方は今夜書きます。
◆ tDiary with mod_rewrite
といっても別に両者が連携するわけではないのだが。
まず、mod_rewriteでtDiaryのURLを「?date=YYYYMMDD」から「YYYYMMDD.html」に変える方法。httpd.confを以下のように(/diary/が日記のディレクトリとする)。
RewriteEngine on RewriteRule ^/diary/([0-9]+)\.html$ /home/httpd/html/diary/index.rb?date=$1
以上。
◆ これで「YYYYMMDD.html」でアクセスできるようになるのだが、日記に埋め込まれた段落アンカーがまだ「?date=YYYYMMDD」を指している。これを変更できるようにするのがanchorプラグイン。
デフォルトでは標準のアンカーを生成するようになっているので、自分で新しいルールを生成するプラグインを書いて置き換えればよい。
def anchor( s )
if /^(\d+)#?([pc]\d*)?$/ =~ s then
if $2 then
"#$1.html##$2"
else
"#$1.html"
end
else
""
end
end
◆ 明日から独身
明日から4日間、かみさんが友だちと旅行に行ってしまうので、4日間ほど独身状態になる。こういう時はアレだ。Asumi RC2を入れよう。いよいよAsumi日記にするぞ。
……なんて言ってると、Kondara 2.1が正式リリースになるような気がする。すごくする。この強烈な予感はなんだ?(笑)
2003-03-01(土)
◆ NFS?
こま犬ライブラリを自宅サーバ(spc46、つまりpiccolo)に移転させるにともなって、サイト全体をコピーしてきた。 tDiaryベースなので文章はWebで入力するとして、肝心の画像データはいつもGIMPでいじるので、クライアント(spc15)から見えるようにしたい。
直接ファイルをいじれるようにしたいから、なんらかの形でmountできるのが好ましい。 で、単純にNFSダロ、と思っていたんだけど、iptablesでいろいろ制限しているところにportmapを使ってnfsを入れるのはえらい面倒らしいということがわかってきて、早々に挫折してしまった。 こんな面倒なの、ちょっと間違っただけでセキュリティホール開けちゃいそうで、恐ろしくてかなわんわ。 目的のために無駄な回り道をするのはごめんだ。
で、他の選択肢はっちゅーと……
- Samba: まぁ、たしかにお手軽。セキュリティ的な不安を感じる
- WebDAV: 遅いらしい。あとファイルのパーミッションがhttpdの権限になっちまうのがちょっと……
- InterMezzo(日本語): 面白いんだけど、ファイルシステム全体をターゲットにするので無理
- SHFS: なんだかよくわからない
なんか結局、rsyncをSSH越しに使って、コピーをいじるのが一番お手軽でセキュアな気がしてきた……。
2004-03-01(月)
◆ 親知らず……?
抜いたはずなのになんでまだ痛むんだ。朝から猛烈に忙しいのに、歯のことばかりに気が向いてしまう。明日、歯医者の予約が入っているのでそれまでバファリン生活だなぁ。
◆ 「Pentium M-900MHz」オンボードのマザー
なんで7万近くもするのに完売なんだよー。欲しかったなぁ(←内部矛盾を検出しました)。
2005-03-01(火)
◆ Let's noteキターっ(7): coLinux
500系で神戸出張。あらかじめ必要なファイルとドキュメントをダウンロードしておいて、車中でcoLinuxをセットアップ。Googleがない環境でシステムをいじるのは緊張しますな。もっとも、apt-getもできないわけで、起動してホストとゲスト双方でpingが通るのを確認したらもうおしまいである。
そうかぁ、TAPドライバってこういう風に使うんだねぇ、と納得。自宅のネットワークが192.68.0.0/24で構築済みだったので、TAPによる仮想ネットワークは192.168.1.0/24にした。ホスト(WindowsXP)のホスト名は「parkes」なので、coLinuxのホスト名は「usuda」と、64mで統一(←一般人にはわけわか)。
続きはホテルにて。ところがホテルのネットワークが遅いのなんのって。sshした自宅サーバ上でキー入力すると、5秒反応がないなんてザラ。おまけに192.168.1.0/24のプライベートアドレスを振ってくれるもんだから、せっかく構築したcoLinux環境とみごとにバッティングである。仕方がないのでcoLinuxの方を192.168.100.0/24に変更。なんにせよ、二度と泊まらんぞ >グリーンヒルホテル
ということで、coLinux上のw3mから日記を更新してみるテスト。これで、どこにいてもWindowsとLinuxの両方が同時にいじれる環境を入手だ。デュアルブートではこうはいかん。
2006-03-01(水)
◆ メールにメモがつけたい(4)
せっかくパッチをもらったのに、昨日は忙しくて試せなかった。先ほど導入。ばっちり直りました。感謝。もっとも、これだとせっかくテキストファイルになっているのに、エディタでそのままいじれなくなっちゃうね……まぁいいか。
ついでに、拡張機能(.xpi)がどんな風に作られているのかも(今ごろ)知った。ロジックはJavaScriptなんだねぇ。てっきりXMLを使った独自言語だと思いこんでたよ(←XULを何かひどいものだと信じていたらしい)。アプリケーションの組み込みスクリプトも、最近はJavaScriptがかなり手堅い位置を占めるようになってきたなぁ。(MacOSの)DashboardやYahoo! Widgetsもそうだよね、たしか。
◆ Apple新製品
iPod Hi-Fi、ダセぇ。これがApple製品だなんて信じらんない。他社製品が間違って紛れ込んだんじゃないのか。
Mac miniは、相変わらずちょっと欲しい。やはり小さい機械には惹かれる。これでWindowsが動けばなぁ(←だいなし)。
◆ おれだったらフォト蔵APIをこうする
せっかくユーザでもあるので(携帯のバックアップにしか使ってないけど)、β公開されたフォト蔵API(アナウンス)を使ってみることにした……んだけど、概要を読んで「ちょっと待て」と思った。
フォト蔵APIは全てRESTで提供されています。機能毎の個別のURLに対して必要なデータをPOSTします。結果は全てXMLで返ってきます。
えーと、GETを使うべきAPIでもPOSTですかね。それ、RESTじゃなくてただの「なんちゃってRPC」だし。……とは言ったものの、自分だってRESTを理解しているかどうか怪しいもんだ。恥をかくつもりで自説を開陳しちゃった方が楽になれそうなので、書いてしまおう。
RESTは、あるリソースをHTTPのメソッドを使って操作するという「作法」だ(カッコつけて「アーキテクチャ」と呼んだりする)。リソースは特定のURIで表現され、それに対してPOSTでデータの追加、GETで取得、PUTで置換、DELETEで削除を行う。
たとえば写真(photo)を操作するAPIをREST思想のもとで設計するなら、URIは「写真」そのものをイメージする「.../api/photo」にする(名詞であることが重要)。このURIに対して、
- 写真データをPOSTすると写真が投稿され(IDが返る)
- IDを指定してGETすると写真が取得でき
- IDを指定した上で写真データをPUTするとIDの写真が置き換わり
- IDを指定してDELETEすると削除される
という風にする。特にGETはクエリも含めて特定の写真を指し示すURIになるという点が重要。
アルバム操作も同様で、「.../api/album」というURIに、POSTで作成、GETで写真一覧、PUTで名前変更、DELETEで削除できるような設計をする。
現状のフォト蔵APIは、「.../api/photo_add」のようにURIがすでに機能を表現してしまっている(名詞でなく動詞になっている)。このURIは名前からして写真の追加にしか使えない。だからPOSTだけでも事足りてしまうのだが、これではもはやRESTは名乗れまい。
おまけにphoto_albumやuser_groupのような、本来GETで扱うべきAPIまでPOSTで操作する仕様。ちなみにこの2つのAPIを試しにGETで操作してみたら動いてしまった。そもそも内部でメソッドの区別をしていないようだ。
著名なWebサービスでも、PUTやDELETEまで駆使したフル装備なAPIを提供しているところは少ないので、こういう「俺REST」がはびこる一因になっているような気がする。REST陣営(って誰?)は、コンソーシアムでも作って作法を標準化した方がいいんじゃない? 総務省に「日本REST協会」を作って普及を促進してもらうとか。
# ただただし [トホホ。直しました。]
# masato [ご意見まことにありがとうございます。 たださんのおっしゃることはもっともだと思います。 ただ、Flickrにしろde..]
# たかはし [>それに対してPOSTでデータの追加、GETで取得、PUTで置換、DELETEで削除を行う。 違うと思います。RE..]
# mizzy [具体的なメソッドに触れていないのは、それはRFCで定められていて自明だから触れていないだけではないのでしょうか? ..]
# ただただし [mizzyさんに言いたいことをすべて言われてしまった……。なお、私のRESTに関する知識は、もっぱらyohei-yさ..]
# mizzy [AtomPPの普及が正しいREST API普及につながるのではないかなー、と考えてたりします。そのために早く仕様固ま..]
2007-03-01(木)
◆ 特異日
今日は(というかここ数日)忙しくて日記を書くにもネタがない。「今日もとくに書くことないなぁ」と思い、昨日の長年日記からその翌日の長年日記を開いたらなんと、2年分しか日記が書かれてない。
「おおー、今日は日記を書かない特異日か!」
と思って日付を見たら2月29日だった。2000年と2004年にしか書かれていないのも道理である。
2008-03-01(土)
◆ 久々にバイクに乗った
年明けから持病が悪化したので自重していたバイクに、久々に乗った。まるまる2ヶ月ぶり。といっても軽く流した程度だけど。
今日は暖かくて気持ちいい日だったねぇ。
18,027km
◆ JVC Jazz Festival
明後日は結婚記念日ということで*1、ちとライブに来てみた。JVC Jazz Festival。最終日の2回目公演にもぐりこんだ。
大西順子(p)
登場するなり30分の持ち時間の大半を使って延々と演奏し続けるという、まったく空気読まないところがスゴい。いや、演奏もすごかったけど。でも残り時間を使って軽〜く弾いた「Take the A Train」が楽しくてとても良かった(←だいなし)。
Harvey Mason Trio
個人的には今日一番の収穫。ジャズ・オルガン好きなので、Tony Monacoのハモンド・オルガンが良かった。CD買おうかな……と思ったら、iTunes Storeに特集ページができてた。たまには商売っ気出すこともあるんだなぁ、iTunes Store。あとでAmzonと比較してから買おう。
The Crusaders
クルセイダーズが再集結ということで、今回の目玉。わお。なんというおっさんホイホイ。個人的にはゲストのSteve Gadd(Ds)が良かった。もちろん、元トロンボーン吹きとしてはNils Landgren(Tb)も。が、目立っていたのはRay Parker Jr.(G)だな。ガチはもちろん、アンコールのネタ(「ゴースト・バスターズ」の替え歌)も含め。
*1 なんともう15年ですよ。


Before...
# ただただし [↑意味不明やがな……]
# かずひこ [私のような hns からの乗換え組のために、 ?yyyymmdd => ?date=yyyymmdd ?yyyymm..]
# ただただし [というわけで、かずひこさんならhns風anchorプラグインを書けますよね:-)]
# かずひこ [いや、それは書けそうなのですが、肝心の '?yyyymmdd' を、mod_rewrite が扱ってくれません。 h..]
# ぷ〜 [DirectoryIndex が使用できない(参照スクリプトを tdiary.conf で明示している)環境で ht..]
# ただただし [こんなツッコミがあったのか……。こんなとこに書かれてもなぁ。 とりあえず、index.cgiは使えないのかな、と疑問..]