ファイルの変更履歴が保存できるのが嬉しくて、前から入れたかった Subversion。リポジトリのブラウズに最初は ViewCVSを使うつもりで Pythonまでインストールしたのにローカルでの CGIの実行環境が整わずに挫折していた。
今度は WebDAVを使ってエクスプローラの Webフォルダ(マイネットワーク→ネットワークプレイスの追加)と ウェブブラウザの Firefoxでブラウズすることにした。
ダウンロードしてきた Subversionのバイナリパッケージに含まれてた mod_dav_svn.soが Apache2.0.54向けだってので、Apache2.2.0にはロードできなかったので 仕方なく、最新(の安定版)じゃないけど仕方なく Apache2.0.55をインストール。
以前 Apacheをコンパイルしようとして apr, apr-iconv, apr-utilといった Apacheから利用されるライブラリのコンパイルの段階で失敗してたので今回は素直にインストーラを利用。Windowsの何が困るって ./configure できないのがそうとう痛い。configure の一行目に #!/bin/sh とか書いてあってもシェルスクリプトが実行できないし、実行してくれるシェルもないし。Microsoftは wshに続いて、Vistaの後には mshを出してくるみたいだけど、シェルスクリプトの実行できないシェルは要らないですよ。
Apacheの設定は簡単。モジュール毎のディレクトリリファレンスと目的別に書かれた記事が使いやすいし、セキュリティ上注意を要する設定には囲みで目立つように注意が書かれてるし、ドキュメントの大部分が日本語に翻訳されてるし。
http://localhost, http://localhost/~user/, http://localhost/svn/の表示に成功。詰まった箇所は二つ。
せっかく Apacheをサービスとして常時動かすのだからと、無料の DDNSサービスを利用して外部に公開することにした。この PCが起動していれが https://sn25p.dip.jp でアクセスできるはず。
mod_sslの設定は右を参照。The Apache + SSL on Win32 HOWTO
公開の目的は不特定多数の人間にアクセス/攻撃してもらうためでなく、ネット越しに自分の PCにアクセスできたら録画予約も HDDに保存したファイルの編集も 貯まってる aviの視聴も思いのままだな、ってことなので
XP Home Editionでそういうことをやろうと思ったら (ようこそ画面にも表示される)「ユーザー」を新しく作成するしか方法がなさげ。ASPNETという見えないユーザーが既に存在しているのでできるないことはないはずなんだが。
Home Editionは関係なかった。Apache用のアカウントを作成してから、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList をいじれば非表示にできる。
とりあえず HTTPDというユーザーを作って Apacheのサービスをこのアカウントで実行しようとしたがログオンエラーになる。どうも「サービスとしてログオン」する権限を与えないといけないらしい。XP Homeには「ローカルセキュリティポリシー」なんて GUIの管理ツールがないので Windows 2000 Resource Kitをダウンロードしてきてコマンドラインで
ntrights -u HTTPD +r SeServiceLogonRight
とする。パスワードが空の時もログオンに失敗するのでパスワードも設定した。OK。
(以下、ぼやき) Home Editionだからって \WINDOWS\System32\lusrmgr.msc(ローカルユーザーとグループ) が実行できないのは非常に困る。さらにいえば今回の様な目的では、(XP Proの機能である)リモートデスクトップさえ使えれば Apacheを使う必要もなく、Apacheを使った以上のことができるのだけど。MSは Homeと Professional Editionをうまく分けてると思うよ。買う前はそんなに機能が削減されてるとは思わなかったけど Home Editionを実際使ってみると、おさえるべき所はきっちり Professional専用の機能としておさえられている。
もう少し下位のレベルでと思って IPSecについても検索したけど Home Editionは「ローカルセキュリティポリシー」が管理ツールとコンパネに含まれてないので設定できない。こんな所にも Homeの制限が。企業と違って個人ユーザーは通信内容が漏れても構わない(というか致命的ではない)よね、っていうのが Home Editionの「Home」の意味なんだと理解。
上のリンク先から興味のある部分だけ抜き出した。
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つのクラス名を割り当てるか、または複数のクラス名を設定する。幾つの要素に対してでも、同じクラス名あるいはクラス名群が割り当てできる。複数のクラス名については、空白文字によって区切らねばならない。