2006年02月 17日
本家サイト トップページ復帰
前回宣言した通り、本家サイトのTOPページを復帰させました。index.rdf を PHP で読み込み、更新4つを自動的に表示させています。
既にカテゴリーおきの RSS 生成は完了しているので、後はその RSS を PHP で読み込んで各コンテンツを更新する枠組みを設計すれば、完全復活です。結局、作業に着手するまで1年かかったヨ。
2006年02月 13日
本家サイト自動更新化に向けて
以前、blog に書いた内容を整形して、そのまま本家サイトに自動反映する、と言うことをやっていました。これは MT Category の Template を blog 用と本家サイト用の2つ用意して実現。実は「更新順」「名前順」「更新逆順」ソート機能なんてのも用意していて、それぞれ別 Template。つまりひとつの Category に4つもファイルを生成していたわけです。
自宅サーバーが動作しなくなって、Berkley DB のレンタルサーバー(http://1-man.net)に臨時引越し中のため、こんな重い状態をそのまま使うわけにもいかず。そこで、XML-RPC & PHP で、本家サイト側から Entry をひっぱってくるのはどうだろう?と。サンプルコードもあったのですが、この案は、レンタルサーバーさんの PHP には XML-RPC module がインストールされていないことが分かり、却下。
今考えているのは、各カテゴリーやトップページを XML ファイルで生成しておき、それを本家サイトの PHP がパースして HTML を整形するやり方です。これなら生成ファイルが増えなくて良さそう。と言うことで、PHP で XML をパースする方法を調べてみたところ、下記にとっても良いサンプルがありました。
早速、利用しているレンタルサーバー上で試してみたところ、おお、動いた動いた!DOM じゃなくてもいけるのね、XML の読み込みって。ソースを読みきれていませんが、シンプルなコードになっているため、すぐに理解できそうです。これは大変ありがたいサイトを発見しました。PHP に関する入門を始め、PHP にまつわる様々な内容が揃っているようです。
材料としてはそろってきたので、いよいよ、サイト自動更新の実装確認と検討フェーズです。
2006年02月 09日
Similarity Search 復活!
以前利用していた、Similarity Search (個別エントリーの右側に表示されています)、 ドメイン変更後、ぜんぜん動かなくなったなぁ、と思っていたのですが、 今日、突然動き出しました!
なんだったんだろう? Bulkfeed Smilarity Search のサーバー側がおかしなことになっていたのかな?
無事に jscache も動作しているようです。良かった良かった。
2006年02月 07日
日付ブラウジング修正
ほとんど気がつかれないと思いますが、実は各エントリー上部にある ○○年○月 ○日 の部分はリンクになっていて、月別アーカイブ、日別アーカイブにジャンプします。いや、単に僕が後で月別・日別とブラウジングしやすいようにそうしていたのです。
ですが、MT3.2 になって、日付アーカイブへの URL がちょっと変わったみたいでリンク切れになっていました。で、今日ようやく修正しました。一歩ずつ元に戻して行きましょうか。
2006年02月 03日
ecto 1.8.8 をインストール
しばらくサボっていましたが、去年の9月に 1.8、12月に 1.8.8 がリリースされていたようですので、インストールしてみました。
相変わらず結構バグありでリリースされています。日本語環境ではほとんど確認されていないのでしょう。ぱっと見ただけでも以下のようなバグがあります。
- メニューが表示されない
(表示がないだけで、クリックは出来る) - メニュー上のいくつかのアイコンが表示されない
- 日本語が(やっぱり)変
- OK が apply を兼ねていない
(結構不便) - アップデート ping の設定がオプションに移った
(これは分からなかった)
とは言え、以前のように例外エラーで落ちたりするようなことはずいぶん減ったように見えます。細かいところは、またバグレポートを出してみようかな。
ちなみに、これらローカライズバグよりは、英語の方がマシ、と言う方は、インストールしたフォルダ内の 『ja』『ja-JP』と言うフォルダ名を適当に変更してしまえば、英語版として実行されます。
2006年01月 30日
携帯ページ復活
もろもろ引越し後、上手く動いていなかった携帯サイト、復帰しました。
例によって、MT4i と言う CGI を用いています。後は Similarity Search と本家サイト自動更新部が復帰できれば完全復帰なんですが。実は1年近くも完全復帰できていないと言うw
2005年11月 10日
MT Ver. 3.2-ja-2 の SPAM filter
凄いですね、Movable Type 3.2 に標準で搭載されている SPAM Filter。性能の良さに感激です。 SPAM 判別されたコメント・トラックバックは DB 登録はされますが、ビルドされないため、削除も高速。ほとんどこれだけのために 3.2 に Update しても良いぐらいですね。
Update の方法は手順どおりです。mt.cfg は mtconfig.cgi と言うファイルに取って代わったようですが、mt.cfg でも対応できます。ので、特に手を入れずに mt.cfg を使ってしまって OK の模様です。
mt template 周りで多少、厳密にチェックするようになったみたいで、凝ったことやっている人の中には以前通っていた template が使えない可能性があるかも知れません。少なくとも私はそうでしたが、普通に修正できる範囲でした。
3.0 の導入時の印象は、2.0 と大して変わらないな~と言うのがぶっちゃけ本音でしたが、3.2 はなかなか感動できる出来栄えになっています。メジャーバージョンアップ扱いで 4.0 って言っても良いんじゃないかと思うぐらいです。やりますねぃ。
2005年11月 07日
MT Ver. 3.2-ja-2 導入
とりあえず、導入してみました。今しがた再構築に失敗したっぽい?後ほどレポートします。
2005年02月 23日
ecto for Windows 1.5 RC1 使用感
Blog エントリーを Windows アプリケーションからポストできるようにするツール、ecto for Windows 1.5 RC1 、想像以上になかなか good です。
ちょっとエントリーが増えちゃった Blog サイトだと、エントリーの Post に時間がかかって仕方ないと思うのですが、ecto 1.5 では、新規エントリー作成 Window と Post 作業が別スレッドで実行できるので、Post 作業をさせている間に、他のエントリーを書くことと言うことが可能です。これが大変便利!勿論、新規エントリー用 Window は複数開くことが可能です。ですが、前のエントリー Post が終了する前に、続けて Post すると動作が怪しいので気をつけてくださいな(このあたりが、ぜんぜんアマアマな感じ)。
プレビュー機能もローカル上で実行してくれるのはうれしいですね。各 Blog に合わせて HTML を適用可能です。ただ、どうせならタブ形式にして欲しかったところですが。
サポートしているサービスも増やしているようです。が、日本のサービスはさすがに検証されていないと思います。とはいえ、Movable Type や TypePad 以外でも XML-RPC をサポートする Blog サービスなら、恐らく動くでしょう。また、作者の Alex さん、バグ・レポートするとかなり必死で対応してくれたりします。つたない英語でも結構くみとってくれて、僕的には高感度アップアップw ので、ぜひ、いろいろためしてあげて欲しいところです。
その他、画像アップロードの UI が相当改善されています。以前のバージョンでは日本語環境下ではツールボックスの配置が崩れてしまっていて使い物になりませんでした。ただ、相変わらず、UI まわりで、「あれ?」と思うような部分があります。Apply ボタン押さずに OK ボタンで閉じると設定が適用されない、とか。トラックバック設定ウィンドウの反映が、×ボタンで閉じる仕様とか。また、予め用意されている HTML テンプレートが貧弱すぎです。自分で HTML テンプレートをがんがん追加できる人向き。
と言うことで、まだまだ、パソコン慣れしていない人が使うには、ちょっと敷居が高そうです。が、Movable Type に直接 Post するよりは、ずーっと気軽に Post できるようになりますよ。そのうち、Help ファイルを翻訳して公開しようと思っています。
2005年02月 18日
Movable Type 3.151-ja 導入
いつもながらのさりげなさで MT 3.151-ja へアップグレードしました。2005/2/7 付けでリリースされていたのですが、ばたばた忙しくて対応できていませんでした。
Movable Type 日本語版サイト: Movable Type 3.151日本語版の提供を開始
脆弱性の問題修正と、ダイナミックページに関するバグ修正が主らしい。更新履歴によると、5.15-en 同等にした、で片付けられてしまっているため、脆弱性問題の詳細不明。いつもどおり、アップグレード自体はきわめてスムーズで、ものの10分作業でした。
2005年02月 17日
ecto for Windows 1.5 Release Candidate 1
Blog エントリーを Windows アプリケーションからポストできるようにするツール、ecto for Windows が 2005/2/14 付け(なんとバレンタインデー)で 1.5 RC1 となったようです。正式リリースではまだありません。
ユーザーインターフェースが大幅に変更となっているようです。このエントリーは ecto for Win 1.5 RC1 でポストしていますが、大きく変わったのは新規エントリーの作成が別 Window になり、今までのエントリーを参照しながら書き込めるようになった点のようです。なお、旧バージョンの設定は引き継がれないようなので、HTML テンプレートの類は Backup をお勧めします。また、簡単に使ってみた感じ、やっぱりまだまだバグは少なくない模様で、そーっと使わないと結構落ちてしまいますw その他使用感はまた別途。
2005年02月 05日
トラックバック SPAM が来た
う~む。ゴンノさんを悩ませたトラックバック SPAM、うちにも来てしまいました。ゴンノさんのところほど悪質ではなく、一件ぽろっと入っただけですが。オンライン書籍販売サイトからの広告トラックバックでした。これが先のコメント SPAM 並みに入ってきたら、貧弱なウチのサーバーは間違いなく落ちます。で、前もって対策をとることにしました。以下のサイトに書かれている対策を施しています。
MTスパム対策 - スパムコメント、スパムトラックバックをNGワードで拒否
これはトラックバックがあった場合に呼び出される CGI (mt-tb.cgi)に対して、予め設定された NG ワードがあった場合はその場で弾く、と言うものです。コメント SPAM 対策版もあります。
問題は NG ワードの設定で、一度遭遇すれば対策も打てるのですが、最初の一回目はどうしても避けられないところでしょうか。MT-Blacklist で対応できない以上、現段階の最善解かなぁ、と。
それにしても、こんなトーシロサイトを狙うとは。う~む。
2005年01月 29日
本格的にコメントスパム対策
IIS で禁止 IP を設定したり、MT-Baysian を入れてみたりしてきましたが、5分間隔で数時間、かなり広範に IP を変えて連続ポストするコメントスパムに最近あっています。これはスパムと言うよりは殆ど攻撃っちゅうヤツで、サーバー落としかねない悪質さ。
一番の解決策は MT-Blacklist なるコメント内の URL / メールアドレスからもスパムを検出、弾くことができる plug-in を利用することらしいのですが、どうにも IIS サーバーでは動かず。readme にも Unix サーバー前提と書いてあるし。
で、業を煮やして mt-comment.cgi に手を入れる対策を採りました。下記サイトで紹介されている方法です。アップデート時に問題になるため、本当は CGI に手を入れたくなかったんですが。
注意点は、上記サイトの Perl ソース、シングルクォート『'』とダブルクォート『"』は全角になっているので半角に変更してくださいね。mt-comment.cgi 側の追加改変は、ほんの4行程度の追加です。とは言え、MT のアップデート時はチェックを忘れないようにしましょう。なお、mt-comment.cgi は2004年5月から変更ないようです。
この仕掛けは簡単です。まず、コメント書き込み時に隠れたパラメータをセットするようにコメント関係のテンプレートを変更しています。コメント書き込み要求があった際、mt-comment.cgi には各種データが送られるわけですが、その中に隠しパラメータがない場合はその場で終了するようになっています。この工夫がコメントスパム対策に効果的なワケは、一連の連続ポスト型コメントスパムが自動ツールを使って mt-comment.cgi に対して直接パラメータ呼び出しをしていることに由来します。自動ツールには隠しパラメータはついていないので、その場で弾くって寸法です。
対策まで例の勢いでコメントスパムが書き込まれていたのですが、対策後は全く書き込まれなくなりました。ふぅ。このアイディアのご提供にはとても感謝!
2005年01月 26日
Movable Type 3.122-ja 導入
またもやさりげなく MT 3.122-ja へアップグレードしました。なんでも mt-comment.cgi には脆弱性があるとかで、スパムメールをはくようになる可能性があるんだとか。そりゃまずいだろって言うんで、アップグレードしてみました。
例によってアップグレード作業はここにある通りでバッチリ。悩まず mt フォルダへ上書きアップロードして mt-upgrade31.cgi を実行すれば終了。見た目上は可もなく不可もないな~、相変わらず。
2004年12月 19日
IIS で禁止 IP を設定する
コメントスパム、すごーいの来たですよ。何が凄いって1分に一回くらいの間隔で 69.41.166.xxx 及び 69.41.168.xxx の IP アドレスを微妙に変化させながら5時間以上に渡ってバンバン書き込む。スパムどころかサーバー落とす気かって感じの勢いでした。こりゃタチが悪い。ちなみにこれら IP は以下のネットワークサービスが提供しているものらしい。
OrgName: 1-800-HOSTING, Inc. OrgID: 1800H Address: 3509 Oak Lawn Ave City: DALLAS StateProv: TX PostalCode: 75219 Country: US NetRange: 69.41.160.0 - 69.41.175.255 CIDR: 69.41.160.0/20 NetName: 800-NET1 NetHandle: NET-69-41-160-0-1 Parent: NET-69-0-0-0-0 NetType: Direct Allocation
IIS マネージャから、ディレクトリ セキュリティ→ IP アドレスとドメイン名の制限にある『編集』ボタンを押して、必要な拒否 IP アドレスを追加します。今回は 69.41.166.xxx なので、追加時、『グループ化されたコンピュータ』としてネットワーク ID 欄に 69.41.166.0、サブネットマスク欄に 255.255.255.0 を入力。これで 69.41.166.xxx からのアクセスを一網打尽に拒否できます。…できますが、上記サービスを利用している一般人からのアクセスも拒否しちゃいますw いや、だって仕方ないじゃんか。全世界からの影響数、最大で256×2で512個のIPが影響。大したことない、大したことない…。
2004年11月 17日
MT-Blacklist IIS6 環境下で動作せず…
助けてくれ~っ。どうやら MT-Blacklist は IIS6 上では動かない模様。サポートフォーラムを見るとこんなアーティクルが。
Installation Problems on IIS, Getting script errors, path problems
最近、コメントスパムが削除するのが面倒なほど物凄い量になってまして…。上記アーティクルがかなり良い線までトラブルシューティングしているみたいなんですが(PATH 名のエラー。IIS + Perl では良くある。)、回答でておらず…。どなたか何かわかりませんか~?
2004年11月 10日
MT 3.1 ダイナミック・パブリッシングの怪
MT 3.11-ja へのアップグレード。しまった、うっかりはまってしまった…。今日はこのあたりで寝ますが。MT 3.1 の『売り』であるダイナミック・パブリッシングについて、現段階まで分かったこと。
- PHP の include を利用していると上手くいかない。
- どうやらバグもあるらしい。
詳細は下記エントリーに詳しいです。
HINAGATA:MT3.11-jaとダイナミック・パブリッシング
このサイトでは PHP の include を多用しまくってしまっているため、テンプレートの見直しがえらく大変そうであるというのと、バグまであるんじゃってんですっかり萎えてしまいました。う~ん。がっかり。
個人的に思うのですが、いわゆるダイナミック・ページ(閲覧時、動的に DB からエントリーを取得、生成するというもの)が本質的な解法でははなく、全てのエントリーを XML にして、XSL/XSLT で HTML を(クライアントで)生成する、と言うのが正しいのではないだろうか、と思い始めてしまっていたりして。JavaScript と言う手もあるけど。いや、この場合は Flash でも良いんですが。その作りであれば、MT 2.x あたりでぜんぜんコト足りるわけで。ただ、ブラウザが最新である必要がありますけど。あ、Flash の場合は Plug-in で解決できるか…?
Movable Type 3.11-ja 導入
さりげなく MT 3.11 にアップグレードしてみました。
MT 3.01D からのアップグレードはこちらの説明通りでモノの10分作業でした。本当に大丈夫なんかな。例によって何が良くなったのかは調べずに勢いだけでアップグレードしているため、なんだか良く分かってませんがw しばらく使った後で、良くなった点、悪くなった点をレポートするナリ。これを人柱と言うw
2004年10月 11日
MT Ping Timeout 値の変更
他のサイトへ Trackback を送るとき、どうしても Timeout が出がちではありませんか?そんなとき、mt.cfg 内の下記設定値を大きくしてみてください。
PingTimeout 60
僕は60で指定していますが、もうちょっと大きめでも良いかもしれませんね。ちなみに default は20のようです。
2004年10月 06日
i-mode 携帯対応
moblog はじめたので、持っている i-mode 携帯からサイトを見ることができないとツライな、と思い。作りましたw
http://www.idea-tech.net/mt/mt4i.cgi
MT4i と言う Movable Type から i-mode で閲覧可能な HTML を生成する CGI を利用させて頂きました。その後いろいろ探していたら、MT4i Tonkey Ver. と言う MT4i をチューニングした CGI が存在することを知り、現在はそちらを使って携帯版アイディア&&テクノロジーサイトを実装しました。いや、これは本当に簡単でした。(CGI を設置した経験のある人ならば、)難しげなところはほとんどなかったです。
強いて言うなら、と言うところで IIS の場合はディレクトリ指定を相対アドレスを避けて下記のようにフルパスで設定してください。
my($MT_DIR) = 'C:/Inetpub/wwwroot/mt/'; # MTホームディレクトリ
まぁ、このあたりは IIS で毎回出てくる話なので、問題ないでしょう。なお、元祖 MT4i ではなく、MT4i Tonkey Ver. を使っているのは、Tonkey Ver. の方がコメント書き込みに関する自動承認機能があるためです。元祖 MT4i には内部のエントリーへのリンクを最適化する機能があって、それはそれで欲しかったのですが、まぁ、i-mode 閲覧は飽くまで『オマケ』なので。
2004年10月 03日
moblog 始めます
…始めますったって特に何かするわけでもないんですがw moblog カテゴリーを始めました。もはや今更感満載ですが、moblog について知らない方もいるかと思うので一応概略を。
moblog とは携帯電話で撮った写真を添付(iショット)して、メールを送ることで blog にエントリーできると言うものです。これで街角からエントリー可能に。mobile web log で moblog。
今や blog と言って知らない人はいない?いやいなかった?最近は Movable Type でせっせと blog する人も減ったからな~って言う余談はともあれ、blog 界の超大御所 hirata さんによって昨年4月、日本に紹介された機能です。hirata さんがご提供されている moblog gateway によって、Mobable Type を利用している方であればどなたでも、大きな変更なく、moblog することが出来ます。設定に関する細かな 注意点、tips を続きに書いてみます。
***
大枠の設定そのものは、hirata さんによるエントリーを読めばほとんど完璧です。ちょっと注意したいのは、予め moblog 用に別アカウントと moblog 用カテゴリーをご自身の Movable Type に予め用意しておく必要がある点ですかね。実はアカウントを別に用意しなくても動くんですが、後で述べるように、それだとセキュリティ上多少難点が多いでしょう。また、エントリーできるカテゴリーは一つだけです。
moblog gateway に登録すると送られて来るメールアドレスに、写真添付でメールを送ると moblog エントリーしてくれるわけです。なお、Subject はエントリーの題名、本文は写真のキャプションとなります。また、キャプションには caption、写真には photo と言う名前のスタイルシートが割り当てられているので、配置を考えたいときはそれぞれのスタイルを指定すれば OK です。なお、gateway の段階でこのタグ割り当てそのものを変更できるようなのですが、直接日本語のドキュメントはない模様。ああ、そうそう、gateway は JPEG/GIF のみ対応とのことです。つまり、PNG を採用しているカメラ付き携帯では moblog できないとのこと。
このエントリー用メールアドレスは moblog gateway が受け取って、MT XML-RPC を用いてエントリーする枠組みとなっています。つまり、唯一メールアドレスの文字列だけがセキュリティとなっています。これが知られてしまうと、他人がどれだけでもエントリーできるわけで、moblog 用ユーザーは別にして、あまり多くの権限を与えるべきではないでしょうね。
ご存知の通り、既に一部サービス系 blog、ソーシャルネットワークでは同じ機能が実現されていて、イマサラなんですがw メールを使う、って言うのはなかなかのアイディアでしたね。
2004年09月 20日
ecto for Windows 1.0.8 updated
ちょいと出遅れましたが、04/09/16 付けでブログ・クライアントソフトである、ecto for Windows が 1.0.8 に update されています。
観測気球さんによる Bug レポートは修正された、とあります。どうやら修正されているようですね。
その他 1.0.7 からの修正は下記通り。1.0.x 最終 ver. とのことで、アップデートを強く推奨しているようです。
- 日付を設定してのポストができない件を修正
- 『ポスト後下書きを削除』設定をしているとエラーとなる件を修正
- ポストリスト更新時にエラーが発生する件を修正
- Create Link Dialogbox で URL を編集できない件の修正
- 設定画面で設定された HTML Template の内容がドロップダウンリストに反映されない件の修正
- E-Mail Notification 画面における不具合修正
- サーバーからのメッセージがない場合における Atom Error メッセージの修正
- アップロードが成功した際に Warning Message を閉じるよう修正
- CTRL + Shift + P を Post Entry に割り当て
- 設定画面を OK / Cancel / Apply とした(こりゃ正しいw)
- サムネイル用ファイル名に関する prefix suffix の両設定を可能にした
- その他 UI 修正
おそらくここに書いていない修正がありますね、随分安定したように思います。…ただ、Alex さん、突然修正を入れてしまったり、無茶するからなぁ…。普通、ソフトウェアのエンジニアってそうそう変更かけたりしないんですけどね。他の大きなバグを生んでしまったりしますから。preview 版をテストリリースする形式が良いと思うんですが、バグレポートを送ってくれた人限定でリリースするみたい。その時も version 名変えずにバンバン上書きリリースするのには恐れ入りましたw こっちはレポートの際『何月何日の何時リリース版』とか言って対応すると言うw すごいなぁ、会社じゃ考えられないや。
2004年09月 19日
MT 3.01D Comment 書き込み時のエラー修正(その2)
MT 3.01D Comment 書き込み時のエラー修正 の追記で掲載したように、Windows Server 2003 (IIS6.0)にしてから大丈夫かと思っていたのですが、相変わらず再現していたようです。エラーの内容から、Perl Script が途中で落ちてしまって、http プロトコルが正確に終了できていなかったみたいです。で、やっぱり先の mt.cfg 設定を元に戻しました。
LaunchBackgroundTasks 0
今のところ再現しなくなったように見えるけど、もし、まだ再現するようでしたら、こちらまでご連絡ください。
2004年09月 15日
index.rdf の MIME type って何が適当?
ちょっと分からないことがあって。先日のエントリーで書いた index.rdf の MIME type の件。考えてみれば馬鹿正直に
application/rdf+xml
と書かずに rdf と言う拡張子のファイルを XML ファイルに見せたいんだから、こう書いてしまえば良いんじゃないか?
text/xml
こうすれば、多分 IE でも index.rdf を XML として扱ってくれる…筈だよね?したら万事解決ではないのかな。まぁ、わざわざ修正するほどの内容でもないとは思うけど。(と言う認識も間違っているのかなぁ)
2004年09月 13日
こっそりレイアウト&実装改善
以前、PHP の include は多用できない、と書いていたのですが、Windows Server 2003 の IIS6 新機能、CGI キャッシュが非常に良く効いているのか、PHP 5.0.1 で随分良くなったのか、どちらのお陰か分からないのですが、何しろ PHP の include 文が軽快に動くようになりました。調子に乗って、Header 部、Calender 部、Link 部、Copyright 部、その他すべて別ファイルとして PHP include 呼び出しで実装しました。これで随分サイトの再構築が早くなりました。また、ちょこっと改変のつもりが全項改変のような悪夢から解放。次は本家サイトの XSLT 表示化だなー。
今回はアーカイブ連動カレンダー初めとする、過去ログ ブラウジングのための UI 設計に力を入れています。入れていますが、『僕が使い安い』ことに主眼を置いているため、サイトとして良くなったかどうかは微妙と言うw
今回のサイト改変履歴は下記通り。
- アーカイブ連動カレンダーの実装
- ヘッダ表示を別ファイル化
- カレンダー表示を別ファイル化
- カテゴリーリスト、アーカイブリスト表示を別ファイル化
- リンク表示部を別ファイル化
- Data-Based Archive と Individual Entry Archive からRecent Entries 表示を削除。
- Data-Based Archive に Archive 内の全 Entry 表示を追加。
- 各 Entry の年月日表示から各 Archive へのリンクを追加。
- Birthday Blog サービス終了?に伴い削除。
- ガチャガチャBlog を追加:-)。
2004年09月 12日
MT アーカイブ連動カレンダー テンプレート
月間移動可能なカレンダーはすでに提案されているのですが、カレンダーでそのまま Archive をブラウズできる方が僕的にはうれしいなぁ~と。で、作ってみました。
このサイト左上にあるカレンダーがそのサンプルなんですが、今表示している Entry 郡の月別アーカイブへリンクされています。前月・次月アーカイブへもリンクされています。これを各日別・月別アーカイブに載せれば、閲覧している人がカレンダーを使って各アーカイブを自由にブラウズできるようになるってわけです。
Data Based Archive テンプレートに下記を追加することで実現できます。スタイルシート等は各サイトによって違うと思いますので適宜改変くださいませ。ちなみにこの色で表示されたところが主に必要な部分です。Data Based Archive でカレンダーを付けるための工夫も入っています。
<!-- カレンダー -->
<div class="sidetitle">
Calendar
</div>
<div align="center" class="calendar">
<table width="160" border="0" cellspacing="2" cellpadding="0"
summary="Monthly calendar with links to each day's posts">
<caption class="calendarhead" >
<MTArchivePrevious archive_type="Monthly">
<a href="<$MTArchiveLink$>">«</a>
</MTArchivePrevious>
<a href="<$MTArchiveLink archive_type="Monthly"$>">
<$MTEntryDate format="%B %Y"$></a>
<MTArchiveNext archive_type="Monthly">
<a href="<$MTArchiveLink$>">»</a>
</MTArchiveNext>
</caption>
<tr>
<th abbr="Sunday" align="center">
<span class="calendar" >
<font color="#990000">Su</font></span></th>
<th abbr="Monday" align="center">
<span class="calendar" >Mo</span></th>
<th abbr="Tuesday" align="center">
<span class="calendar" >Tu</span></th>
<th abbr="Wednesday" align="center">
<span class="calendar" >We</span></th>
<th abbr="Thursday" align="center">
<span class="calendar" >Th</span></th>
<th abbr="Friday" align="center">
<span class="calendar" >Fr</span></th>
<th abbr="Saturday" align="center">
<span class="calendar" >
<font color="#0033CC">Sa</font></span></th>
</tr>
<MTCalendar month="this">
<MTCalendarWeekHeader>
<tr>
</MTCalendarWeekHeader>
<td align="center"><span class="calendar" >
<MTCalendarIfEntries>
<MTEntries lastn="1">
<a href="<$MTEntryLink archive_type="Daily"$>"
title="Last entry is[<$MTEntryTitle$>]">
<b><$MTCalendarDay$></b></a>
</MTEntries>
</MTCalendarIfEntries>
<MTCalendarIfNoEntries><$MTCalendarDay$>
</MTCalendarIfNoEntries>
<MTCalendarIfBlank> </MTCalendarIfBlank></span>
</td>
<MTCalendarWeekFooter>
</tr>
</MTCalendarWeekFooter>
</MTCalendar>
</table>
</div>
Main Index のテンプレートはちょっと書き方を変えなければいけません。続きに示すようにしてください。
<!-- カレンダー -->
<div class="sidetitle">
Calendar
</div>
<div align="center" class="calendar">
<table width="160" border="0" cellspacing="2" cellpadding="0"
summary="Monthly calendar with links to each day's posts">
<MTArchiveList archive_type="Monthly" lastn="1">
<caption class="calendarhead" >
<MTArchivePrevious>
<a href="<$MTArchiveLink$>">«</a>
</MTArchivePrevious>
<a href="<$MTArchiveLink$>">
<$MTDate format="%B %Y"$></a>
</caption>
</MTArchiveList>
<tr>
<th abbr="Sunday" align="center">
<span class="calendar" >
<font color="#990000">Su</font></span></th>
<th abbr="Monday" align="center">
<span class="calendar" >Mo</span></th>
<th abbr="Tuesday" align="center">
<span class="calendar" >Tu</span></th>
<th abbr="Wednesday" align="center">
<span class="calendar" >We</span></th>
<th abbr="Thursday" align="center">
<span class="calendar" >Th</span></th>
<th abbr="Friday" align="center">
<span class="calendar" >Fr</span></th>
<th abbr="Saturday" align="center">
<span class="calendar" >
<font color="#0033CC">Sa</font></span></th>
</tr>
<MTCalendar>
<MTCalendarWeekHeader>
<tr>
</MTCalendarWeekHeader>
<td align="center"><span class="calendar" >
<MTCalendarIfEntries>
<MTEntries lastn="1">
<a href="<$MTEntryLink archive_type="Daily"$>"
title="Last entry is[<$MTEntryTitle$>]">
<b><$MTCalendarDay$></b></a>
</MTEntries>
</MTCalendarIfEntries>
<MTCalendarIfNoEntries><$MTCalendarDay$>
</MTCalendarIfNoEntries>
<MTCalendarIfBlank> </MTCalendarIfBlank></span>
</td>
<MTCalendarWeekFooter>
</tr>
</MTCalendarWeekFooter>
</MTCalendar>
</table>
</div>
上級技として
ここまで作ると Individual Entry Archive テンプレート(個別の Entry)にもカレンダーを載せたくなるのですが、まっとうな方法では実装できません。各アーカイブへの URL が Data-Based Archive 以外では生成できないからです。上級技として実装の指針も書いてみます。
- カレンダーだけを自動生成する新しいアーカイブテンプレートを作成する。
- ウェブログの設定 → アーカイブの設定で、「月別」として登録。
- 生成 file 名を calender_<$MTArchiveDate format="%Y_%m"$>.html などとする。
- PHP の include か、MTInclude を使ってcalender_<$MTArchiveDate format="%Y_%m"$>.html を各 Individual Entry Archive から読み込むようにする。
個人的な見解ですが、iframe タグを使って読み込む方法は IE 以外のブラウザでは不具合を起こすため、あまりお勧めできません…が、そのあたりを開き直れるのであれば。なお、これらの検討は以下のエントリーに詳しく書いてありましたのでご参考まで。
nlog(n): カレンダーを MTInclude するには
2004年09月 10日
index.rdf が公開できてなかった!
同じ Windows なのに種類を変えると毎回いろいろあるナー。Bulkfeeds Similarity Search が上手く働いていないなぁ、と思っていたら、index.rdf が外部からアクセスできない状態となっていました。Similarity Search は My Blog 等への更新 ping のタイミングで 登録された RDF ファイルを以って「似たサイト検索」を行っています。僕が登録している RDF ファイルは index.rdf (RDF1.0)だったので、これが公開されていないので動かないわけですわ。
Windows Server 2003 ではアプリケーションとして登録されていない拡張子は公開できないことになっていて、rdf と言う拡張子が default では非公開だった模様。
IIS マネージャから既定の Web サイトを右クリックしてプロパティを開き、HTTP ヘッダータブ、MIME の種類ボタンを押して .rdf に対して application/rdf+xml を追加する。これで公開されます。
WindowsXP SP2 でいつの間にか rdf 拡張子がブラウザ(IE)には XML ファイルとして認識されなくなったみたいで。ので、上記 MIME type 指定は IE 的に単なる「得体の知れないファイル」として認識、ダウンロード dialogbox が表示されます。ので、txt/plane とか書いても多分問題ナシ。要は公開されていればヨシ。とは言え、ちゃんと MIME type を理解するブラウザも多数あると思うので、ちゃんと書いておく方が良いでしょうね。
2004年09月 07日
ecto for Windows 1.0.7 updated
ブログ・クライアントソフトである、ecto for Windows が 1.0.7 に update されています。
リリースノートに注目! ↓↓
Improved Japanese translations from Gucchiy.
へへへ~。詳しくはこちらのエントリーで書いている翻訳そのままですので、もしお気に召さなかったらコメントなり付けて下さいな。すっかり ecto の回し者となったワタクシw
今回のアップデートでは、ユーザーインターフェースに多少の思い切った変更がかかっています。ので、前バージョンで切り替えタブとなっていた Trackback や ping 項目、および text formatting の選択等が、proper button (HTMLテンプレートの右隣り)を押すと表示される proper dialogbox に移っています。
バグがないわけではありませんが、大きな問題はほぼ修正されています。明日あたり、日本語版ヘルプを書き始めてみようかと思っています。
Windows Server 2003 (IIS6.0) 上に Movable Type
Windows Server 2003 (IIS6.0) 上に Movable Type をインストールする場合の注意点を。そのままではサイトを構築できません! Permission Error が出ると思います。Windows Server 2003 は Web User に対して Default ではファイルの改変・追加・削除を許していないのです。ので、予めサイト用フォルダ、(仮に blog と blog/archives)に対して Web User にフルアクセスを設定すること。IIS マネージャーから各フォルダを右クリック→アクセス許可 として『インターネットゲストアカウント』にアクセス権をすべて有効にする。このとき、詳細設定ボタンを押して表示される『インターネットゲストアカウント』も同様な変更を行っておく。なお、blog フォルダ、blog/archives フォルダ各々設定してやる必要あり。Movable Type の CGI 本体フォルダは特に変更しなくて OK です。と言うか、CGI のあるフォルダに不用意なアクセス権を与えると、それこそセキュリティ的に難あり。このような状況なので、IIS 6.0 上で Movable Type による blog を作成する場合、予め各エントリー作成フォルダは作成しておく必要がある。
このあたりはみんな悩む模様なんですが、誰もちゃんとトラブル・シューティングしてませんな。
2004年09月 06日
ecto .NET framework 1.1 SP1 上での不具合
ブログクライアント ecto は、.NET framework 1.1 SP1 がインストールされているとサーバーと同期できない模様です。SP1 はアンインストールできませんので、.NET framework 1.1 ごとアンインストールして、Windows Update 等で .NET framework 1.1 をインストールしなおすととりあえず問題は修正されます。バグレポート を ecto forum に post 済み。
--- 2004/09/06 追記
なーんと。本件はサーバーが IIS を用いている場合でのみ再現する問題であることがわかりました。私が使っていたのは WindowsXP Professional に付属している IIS 5.1 だったわけですが、ecto がその制限にひっかかってしまう模様。なので、上記はほとんどの環境では再現しないはずです。
MT 3.01D Comment 書き込み時のエラー修正
MT 3.01D で Comment を書き込む際、Perl モジュールが落ちてしまうことがあります。IIS(Windows)の場合は例外エラーが Assert されていますが、その他サーバーでも Perl Error となるケースがあるようです。これを解決するためには、mt.cfg に下記行を追加してください。
LaunchBackgroundTasks 0
…実はずいぶん悩んだのですが、以下の MT Forum の書き込みを参考に修正しました。何を意味するのかはかなーり不明w
Support Forum: error posting moderated comments
--- 2004/09/07 追記
上記は IIS 5.1 のように帯域、接続数の制限が厳しい WWW サーバーソフトで再現する模様です。Windows Server 2003 、IIS 6.0 上では再現しませんでした。恐らく Apache でも再現しないでしょう。
2004年09月 05日
Movable Type 3.01D 導入
見た目は何も変わっとらんやんけ、と言われればその通りなのですがw 一応、内部では Movable Type 3.01D となりますた。3ヶ月以上前にリリースされていたわけですが、ちょっと静観していまして。あまり大きなメリットがあるわけでもないのですが、ecto のテストも最新環境でないとイカンな、と。
アップグレードに関する情報はこちら 『Movable Type 3.x 導入手順: 6.MT2.6xからのアップグレード』 に詳しいですが、多少情報が古いかも知れません。3.01D は MT Template の編集がほぼ必要ないようです。1時間かからずにアップグレードできてしまいました。
BlogWrite も試してみる
さて、ecto の開発についてもいろいろ始めているわけですが、他のブログクライアント(こんな言い方があったとわ知らなんだ)も試してみよう、と。
で、今回利用試しているのが BrogWrite と言うクライアントソフトです。日本謹製なので、結構品質は高い感じ。シェアウェアで\2000-です。HTML の編集関係の自由度がちょっと弱いかな?もうちょっと ecto のようにいろいろタグ設定が出来るとうれしいかも。
.NET framework を利用していないため動作速度は速い模様。まずはこちらもテスト。





