上のリンク先から興味のある部分だけ抜き出した。
au携帯電話とPCで音楽の共有を可能にするPC音楽管理ソフト「au Music Port」
- PCへのCD音源の読み込み、およびau携帯電話への転送、再生。
- 本年4月に開設予定の「DUOMUSIC STORE」から楽曲のダウンロード、およびau携帯電話への転送・再生、着うた®設定。
- アドレス帳、スケジュール、フォト、ムービー、Eメールなどのバックアップに対応。
CD音源が PCを経由して携帯へ、ってことで えせ着うた(mmf)、自作着うた(.amc, .3g2)の出番が無くなるのかと期待したのに、行末を読むには違うみたい。まぁ当然か。そんなことできたらパケ代も着うたの利用料も節約できてしまうもんね。
au Music Portは新機種に同梱されるらしいので、3番目のバックアップだけは MySyncを買うよりハードルが低くなって良し。Eメールも保存できるし。
Displaying The Security Tab In XP Home Edition
Microsoftのサイトから Security Configuration Manager x86(Intel) Version をダウンロード。SCESP4E.EXEをダブルクリックしてファイルを解凍、setup.infを右クリックして「インストール」。再起動したら完了。
出たよ出ましたよ、セキュリティ タブが。
これでファイルをコピーすることなく所有権を自分のものにできる(制限ユーザーは自分の所有するファイルしか自由にできないから所有者名を制限ユーザーのものにしておきたいことが時々ある)し、マイドキュメントと Documents and Settings\<ユーザー名>の下層以外の場所にプライベートフォルダを作ることもできる。
20050929p02で引用の中で <pre>を使いたい言うてましたが、どうやら最初から可能だったご様子。
hikidoc.rbからの引用。
###################################################################### # blockquote BLOCKQUOTE_RE = /^""[ \t]?/ BLOCKQUOTES_RE = /(#{BLOCKQUOTE_RE}.*\n?)+/ def parse_blockquote( text ) text.gsub( BLOCKQUOTES_RE ) do |str| str.chomp! str.gsub!( BLOCKQUOTE_RE, '' ) "\n<blockquote>\n%s\n</blockquote>\n\n" % block_parser(str) end end
###################################################################### # block parser ###################################################################### def block_parser( text ) ret = text ret = parse_plugin( ret ) ret = parse_pre( ret ) ret = parse_comment( ret ) ret = parse_header( ret ) ret = parse_hrules( ret ) ret = parse_list( ret ) ret = parse_definition( ret ) ret = parse_blockquote( ret ) ret = parse_table( ret ) ret = parse_paragraph( ret ) ret.lstrip end
block_parser()は見ての通り、整形済みテキスト(pre)、見出し、リスト、引用、テーブル、段落などを解釈する。
つまり、引用の中には (<pre>も含めて) block_parserが解釈するブロック要素が全て書ける。
何故今日まで気付かなかったのかというとコレ↓
BLOCKQUOTE_RE = /^""[ \t]?/
ドキュメントでは一般的に、「行頭に "" を付ければ引用になります」と書かれるけど、hikidoc.rbの実装では それに続く空白・タブ文字も引用を表す記号の一部として扱われている。行頭の空白は整形済みテキストを表すりっぱな Wiki記法の一部なのに。
そういうわけで
引用の中で整形済みテキストを書くときは 行頭を「"" 」(注:スペースは 2つ)で始めます。
(´・ω・`) 知らなんだ。
http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/struct/global.html#h-7.5.2
class = cdata-list [CS]
この属性は、ある要素に1つのクラス名を割り当てるか、または複数のクラス名を設定する。幾つの要素に対してでも、同じクラス名あるいはクラス名群が割り当てできる。複数のクラス名については、空白文字によって区切らねばならない。
wizdのソースを見てたら daemon_init()って関数で標準入出力と標準エラーを閉じてたんだけど、この本をパラパラめくってたら「17.4 デーモンになる」なんてページがあって、そうする理由が書かれてた。早速役に立つところを見せてくれて期待が高まる。
ちょっと前に(といってももう去年の 7月だったが) tDiaryが CSRF(Cross-Site Request Forgeries)脆弱性を理由にアップデートされたんだけど、いまいちその脆弱性の具体的なイメージが掴めなかった。
ちょっと検索すれば解ることなんだけど、その検索をサボってた自分はこの本を読んで初めて原理が解った。
(詳しいことは検索したら解りやすいサイトがいくつもあるので書かないけど) tDiaryで日記の更新の時に使われてる Basic認証は、特定のページを表示するときにパスワードを要求してユーザーを認証するけど、その認証は特定のページと関連付けられているわけじゃないので、認証済みユーザーから送信を受け取ったときに Refererがその特定のページであるかチェックするとか、その特定のページに第三者の知らない情報(キー)を埋め込んでおいて一緒に送信するようにしておく(キーが無ければ偽のフォームから送信されたと判断する)とかしないといけないらしい。
有名な XSSと SQLインジェクションぐらいは聞いたことがあるけど、他にも色々網羅して本にまとめてくれると使いやすくて良いね。(ディスプレイは見やすさ、姿勢・場所の選ばなさ、飛ばし読み・拾い読みのしやすさでは紙に勝てないから)