2010-04-26(月) [長年日記]
■ tDiary: ナビゲーションメニューにdropdown_calendarなどを埋め込む
先日のデザイン変更ついでに、↑に出ているナビゲーションメニューへカレンダーなんかを埋め込んだら、どうやってるのか聞かれたので、参考までに。何を入れたいと思うかは人それぞれなのでcontribとかには入れるつもりはないんだけど。
# my_navi.rb プラグイン
#
# 通常のnaviに、カレンダーとRSS feedのアイコンを追加。
# dropdown_calendar.rbを有効にしておくこと。
# @options['dropdown_calendar.label']は空('')にしておく。
def navi
result = %Q[<div class="adminmenu">\n]
result << navi_user
result << navi_admin
result << calendar
result << %Q[<span class="adminmenu"><a href="index.rdf"><img style="border-width: 0px;" src="http://tdiary1.tdiary.net/feed-icon-12x12.png" width="12" height="12" alt="RSS feed"></a></span>]
result << %Q[</div>]
end
重要なのはCSSで、カレンダーが挿入するdivやformなんかをinline要素にする必要がある。gustavテーマにはこんな感じに仕込んである:
div.adminmenu div,
div.adminmenu form,
div.adminmenu select {
display: inline;
}
おまけ。スマートフォン向けにnaviのラベルを短縮:
if @conf.smartphone? then def navi_index; 'TOP'; end def navi_prev_diary(date); '前'; end def navi_next_diary(date); '翌'; end def navi_prev_nyear(date); "前"; end def navi_next_nyear(date); "次"; end def navi_latest; '新'; end def navi_update; "追"; end def navi_edit; "編"; end end
2010-04-24(土) [長年日記]
■ 川崎 3-0 神戸@等々力競技場
ケンゴがスタメンで出てきた時は思わず涙ぐんでしまったよ。これでジュニーニョが戻ってくれば元通りなんだがなぁ。
3点中2点がPKという微妙な形だったが、勝ちは勝ちなのでOK。黒津はもうちょっとチャンスをものにして欲しいけど……。もう2点は入っても不思議じゃなかったような気がするよ。
序盤はDFの裏を狙われて、たやすくゴール前までボールを運ばれるシーンが頻発してヒヤヒヤしたけど、すぐに修正されたようで、このところ心配していた守備はまぁまぁ安定していた感じ。浦和戦みたいに最後までグダグダでなければいいのだ。
2010-04-23(金) [長年日記]
■ Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)(山本 陽平)
技術評論社の稲尾さんから献本いただいた。読むの遅くてすみません(ここまでテンプレ)。
とはいえ、すでに出回っている書評に付け加えることはほとんどないんだよなぁ。Webテクノロジーの基礎に関する最高の教科書のひとつだと思う。付録のリファレンスも含めて、作りが極めて教科書的で、色褪せない工夫が随所にあって感心する。Webサービス開発者に限らず、Webに携わる者はみんな読んでおくべき。
実は、途中までは、対象読者は開発者だろうと思っていたんだけど、最後のリソース設計のところで情報アーキテクチャとの関係が登場して、もっと広く読まれるべきだと思い直した。「Webアプリとか関係ないし」とか言いつつふつーの情報サイトを設計している人がいたら、自分が作ってるサイトが、いつかどこかでAPI化される可能性に気づいて居ずまいを正すのもいいと思うよ。
それにしても、かれこれ15年以上Webに関わってるのに、知らないことがいっぱい書いてあるんだもん、まいったわ。知らなかったところに付箋を貼りながら読んでいたんだけど、読み終わってあんまりたくさん貼ってあるもんだから、げっそりした。まだまだ勉強が足らんなー。
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
技術評論社
¥2,827
といいつつ、ひとつだけ理解できないというか、納得できないところが。トランザクションのところがなんだかRESTっぽくないのがすごく気になる。
トランザクションリソースに対象となる操作を加えていくところで、「削除」に相当する指示を与えてないんだよね、このサンプル。トランザクションリソースにDELETEを送れないのはわかるし、代わりに使えるメソッドがPUTしかないというのもわかるんだけど、じゃあ「削除」はどこへ行ってしまったのか? 「ボディを与えてないから削除なんだ」というのはちょっと苦しいと思う。
やっぱりこういう複雑な要件をRESTfulに実装するのは困難な面もあるんじゃないかなー、と思った例だった。それともサンプルだから省略されている奥義があるんだろうか。もしかして『RESTful Webサービス』を読むと答えが書いてある罠だったりして(と思ったのでほしい物リストに入れておく)。
RESTful Webサービス
オライリー・ジャパン
¥4,180
追記
ますますひっかかるらしい。なんと……。
◆ TrackBack [http://developer.cybozu.co.jp/kazuho/2010/04/rest-re-web-a..]