blog あずきン 閉鎖のお知らせ
今週をもちまして、本blogを一旦閉鎖することになりました。
多くの方々に支えられて2年もやってきましたが、ここいらで一旦リセット致します。
今までのご愛顧、ありがとうございました。
なお、本blogは9/4頃、参照できなくなります。
連絡先: mega.cc★gmail.com (★=@)
今週をもちまして、本blogを一旦閉鎖することになりました。
多くの方々に支えられて2年もやってきましたが、ここいらで一旦リセット致します。
今までのご愛顧、ありがとうございました。
なお、本blogは9/4頃、参照できなくなります。
連絡先: mega.cc★gmail.com (★=@)
→→→ 
変えました。
「あずき」はもちろんアレです。
ISO80 F4.3 1/60s 5.8mm(35.0mm)
いやぁ、突然雪が降り始めてビックリ。
ということで、ダイナミックパブリッシングに二度目の挑戦です。
色々と不都合がありますね〜。
一番の問題は、次のようなものです。
<MTEntryCategories>
<?php include("http://japo.net/miya/archives/cat_<$MTCategoryLabel dirify="1"$>.html"); ?>
</MTEntryCategories>
これは困った。
[追記]
コメントに書いたように、元々これはアーカイブテンプレートとして作ってあるので、
<MTEntryCategories>というようにインクルードしてやることで解決!
<$MTInclude module="index of category"$>
</MTEntryCategories>
とうとう来ました。
これまでもポツリポツリと来ることはあってその都度削除していましたが、
とうとうまとめて40個以上来ました。
TB spamはちょっと簡単には防げないので、どうするのがいいか思案中。
(MT3ではTB一覧から削除ができるので助かった。これがMT2だったらと思うとぞっとする)
[追記] 再び20個ほど来たので、取り敢えずmt-tb.cgiの名前を変更。
MT 3.1のダイナミックパブリッシングを使おうとしたら、予想外なプラグイン等でエラーが出ている。
これは困った。
沢山アクセスしていただいているのに、空のページが表示されたとか、エラーになったとかの方々、申し訳ありません。
現在、個別ページのみ、ダイナミックになってます。それも左右のサイドバーはなし&応急処置でコンテンツの一部も表示できていません。
[追記] コメント書き込みが失敗していました。(not permitted) すみません。(泣きっ面に蜂とはこの事か)
はい、申し訳ありません。私が悪うございました。
perlのプラグインは一切使えないのですね。はいはい。
wrapperを入れるとかすればいいのかなぁ。きっと誰かが作っているだろうね。
ダイナミックパブリッシングは暫く延期します。
きっと、あちこちで書かれていると思うので、自分のメモだけ。
[2004/10/22更新]
バグ修正
MT3.01-jaを使っていて、MaiLogで(XMLRPC)、あるいはPost2MT(Perl API)を使って投稿するとゴミみたいなエントリができる事があった。また、Perl APIでドラフト(下書き)でエントリを作っているのに、index.htmlに公開されてしまう(individualは存在しない)問題もあって途方に暮れる事もあったが、いずれも直っている。自分のプログラミングが悪いのかと悩んでいたが、MTの問題でした。
以下、メモ。
ダイナミックパブリッシング関係
MT-Notifier関係
コメントスパム回避関係
二箇所でコメントを書いて遭遇。最近ちょっと見直していた矢先にこうだ。
ダメダメ。
次いで、別の所でも…
![]()
何だか、もう見るなって言われてるみたい。
直近のログから抜粋(一部伏せ字)。
>2004.10.04 11:56:36 38.119.107.88 online texas hold em, http://www.online-texas-hold-em.xxxx, top@xxxx.com, 0 banned because comment posted without valid yyyy and zzzz
>2004.10.04 13:45:36 213.172.36.62 home, http://www.buy-ambien-online-top-pharmacy.xxxx/, bushmills2300@xxxx.com, 1 banned because comment posted without valid yyyy and zzzz
いつまでこのような事態が続くのでしょう。このようなコメントスパムに反応してクリックし、本当に買う所まで行く人が居るという事なのでしょうか。それが信じられないですが、それが現実にあり、そしておそらく解決できない根本的な問題なのでしょう。
少し前から徐々に、そして、昨日から今日にかけて多くの(まだ10くらいですが)コメントスパムが対策をすり抜けて来ていますので、新たに対策を強化しました。
これで少し様子を見ます。
この30分くらいの間にコメントしようとしてくれた方、申し訳ありません。エラーになってしまいました。
Movable Type 3.01D-ja用。
MT2用と同じように、記事のサブジェクトをキーとしてスパムかどうかをチェックします。
[2004/10/22追記]
ここに書いたように、最近のコメントスパムは巧妙になってきていて、一筋縄では回避できない。そのため、9/23に更に回避コードを入れました。**********を使ってダイナミックに*を設定しています。(明記したくないので、ソース等ご希望の方はコメントください)
[追記]
このパッチの主眼点は、
・キーをエントリ毎に替える事で安易なクラックを抑止できる
というものです。
まず、コメントフォームに以下のキーを設定します。
[MT-dir]/lib/MT/App/Comments.pmを以下のように変更します。
$ diff Comments.pm.bak20040729 Comments.pm
135a136,147
> #-- 2004/07/29 miya; reject comment spams
> {
> my $author = $q->param('author') || '';
> my $url = $q->param('url') || '';
> my $email = $q->param('email') || '';
> unless (defined $q->param('tid') && $q->param('tid') eq $entry->title) {
> $app->log("$author/$url/$email banned because comment posted without valid tid");
> return $app->error("comment posting is not permitted");
> }
> }
> #-- end
2004.07.29 09:03:34 210.xxx.yyy.zzz miya/http://japo.net/miya//mailaddress@example.net
banned because comment posted without valid tid
MT3でコメントメール(管理者)の余計なCRを取り除く。
コメントが追加されるとblog運用者にメールが来ますし、MT-Notifierを入れていると登録した人に同様のメールが届きますが、この時、コメントの各行の最後に余計なCR(0x0d、^M)が付いて来ます。
これを取るには、[MT]/lib/MT/App/Comments.pm をハックします。
$ diff Comments.pm.bak20040729 Comments.pm
406c406,410
< $comment->text($q->param('text'));
---
> #$comment->text($q->param('text'));
> # miya
> my $comt = $q->param('text');
> $comt =~ s/\r\n/\n/g;
> $comment->text($comt);
なお、MT2用はこちらです。
取り敢えず、ここのMTを3.01D-jaにしてみました。
結果は良好。様子をみて、良さそうなら個人ライセンスを買おうかな。
ただ、いくつか問題点もあります。
・コメントを(管理者に)メールする際、依然として行末にCRが一個多い。
・「新しいコメントがあったら(ユーザに)メールする」機能は標準ではないので、現在使えません。TypeKeyとの絡みで、簡単には実装できないか!?(できるけど、面倒だな)
・コメントスパム対策としてのTypeKeyは非力。普通のユーザは登録しないでしょう?(してる人もいるとは思いますが) TypeKeyユーザだけを相手にしてるサイトなんてないでしょう? 結局、また別途対策が必要なのではないだろうか。
・エントリの個別リビルドがない。「保存」では最終更新日時が変わるから、私には必要。
[7/30 更新] 上記strike部分は自己解決済み。
このblogには食物の話題が多いから食物や店の名前で多くヒットするのは当然として、それ以外でここ一週間の検索ワードを見てみよう。
記念硬貨
東京オリンピック記念硬貨
うむ。確かに書いた。一度だけ。しかし、その一回で1%ものヒット。それも書いて以来ずっとヒットし続けているのはなぜだろう。世の中の人々は記念硬貨情報に餓えているのか?
ふくらはぎ
ふくらはぎが痛い
ふくらはぎである。これは間違いない、ふくらはぎフェチが相当数いるのであろう。しかし、後者はどうなんだ?なんでこんなのでサーチするんだ?検索してなぜ痛いのか知りたかったのか?それくらい痛かったという事だろうか?一件二件じゃないのだが…。
エアコン 世田谷
ワケわかんない。エアコンと世田谷にどういう繋がりがあるというのだ?電器屋さんなら別の探し方があると思う。
ジャングルコング
ラブホ ジャングルコング
仙台 ラブホ
ラブホ 仙台駅
ジャングルコングは仙台の街中、超一等地にあるラブホ ブティックホテル。うん、うん、そういう情報は前もって調べて置かなきゃね。万一の場合に備えてさ。検索してる姿を想像すると微笑ましい。
岩手県
こりゃまた、、目的の情報はあったのだろうか?
仙台 面白い 場所
これは素敵な検索だ。面白い場所があったのかどうか、ぜひ聞いてみたいNo.1。
それ
それは見付かったかな?
楊枝
……。
不思議ちゃん
彼女の事だ。
取り敢えず、使ってみた。大きく変わった点はないが、コメント関係がTypeKeyに絡む事か。でも、コメントするのにいちいちtypekeyにログインするというのも面倒&余計なお世話なものだな。もちろん、TypeKeyを使わないようにもできるし、TypeKeyを使っても未登録ユーザを許す事も、それを管理者の承認方式にする事もできるのは優れている。ちょっと複雑だけどね。
MaiLogのテストのためにインストールしたが、MaiLogでは特に問題は発生しなかった。
デフォルトのテンプレートはこんな感じ。typekey関係のアイコン
が目新しい。これをクリックするとそのユーザのプロフィールが表示されるようになっている。
アーカイブのファイル形式が変わったかな。年月がディレクトリになって、おっと、ファイル名はタイトルを使っているか。。これはカテゴリ名同様、日本語で問題になるね。ディレクトリ内一連番号か日付+時間+一連番号くらいで良かったように思うが。
コメントスパムが少し多くなってきたので、Movable Typeのコメントスパム対策をやってみました。
副作用が心配なもの(MTBlackListなど?)は除外して、オーソドックスな方法で入れてあります。
(でも、ちょっと凝った部分もあります)
早くスパムが来ないかなぁっと心待ちにしてるのですが、こういう時に限ってなかなか来ないので先に公開します。(笑)
まず、テンプレートのコメントフォームに以下を追加します。
[quote][code]
[/code][/quote]
これは、要するにコメントを投稿する際にパラメータとして記事のタイトルを渡しますよということです。
Individual Entry Archive, Comment Listing, Comment Preview, Comment Errorの四箇所に入れます。
これを入れたら、Individual Archiveの再構築が必要になります。(古いエントリに反映させるため)
次に、[MT]/lib/MT/App/Comment.pm に以下を追加します。sub post の中で、$entry を得た直後になります。
(行番号は少しずれているかも知れません)
[quote][code]69,81d68
< #-- 2004/04/20 miya; reject comment spams
< {
< my $uip = $app->remote_ip;
< my $author = $q->param('author') || '';
< my $url = $q->param('url') || '';
< my $email = $q->param('email') || '';
< unless (defined $q->param('tid') && $q->param('tid') eq $entry->title) {
< $app->log("$uip/$author/$url/$email banned because comment posted without valid tid");
< return $app->error("comment posting is not permitted");
< }
< }
< #-- end
[/code][/quote]
なぜmt-comments.cgiじゃないかと云えば、エントリ内容(タイトル)の参照や標準のロギングを使いたかったからです。
タイトルをパラメータにしたのは、日本語である(ことが多い)のと、毎回異なる(だろう)といった事からです。
ログ(メインメニューの「Movable Typeのログ確認」)には以下のように表示されます。
[quote][code]2004.04.21 01:47:44 210.zzz.xxx.yyy
210.zzz.xxx.yyy/miya/http://japo.net/miya//XXXXXX@japo.net
banned because comment posted without tid (折り返しています)
[/code][/quote]
何度かやろうとしてその都度面倒で挫折していたフォトライブラリを懲りずにまた始めました。
今度はQuixotic PixelsとMaiLogとの連係でとにかく簡単にエントリできるようにしています。
興味ある方がいらっしゃれば、必要な情報を公開していきます。
![]()
今までデフォルトのシーケンス番号にしていた固定リンクを変更しました。アーカイブ設定で、individual entryのテンプレートを次のようにしました。
<$MTArchiveDate format="%Y%m%d_%H%M%S" dirify="1"$>.html
古いアーカイブをどうするかという問題がありましたが、簡単解決法により解決しました。
つまり、「何もしない」です。今までのファイルはアーカイブに残ってますので、そのままにしておきます。
一部、メインインデックスにあるものだけは、新しいものに変更しました。
これで何か不都合があるのでしょうか? あれば教えてください。お願いします。
この作業を行う前、同じ時間にしてあったエントリをいくつか時間を変更しました。
その際、一括編集モードで行ったのですが、あることに気づきました。
そう、例えば20個を表示して、そのうち数個のエントリを編集して保存すると……
20個全部の更新日時が変わってしまいます!! そりゃないよ〜
前に、何故か更新日時が変わるエントリがあって、不思議な思いをしていたのですが、その疑問も解消です。
(嬉しくない…)
ということで、何十個かのエントリに旗が立ってますが、それは気のせいです。(泣)
今まで、メインもアーカイブも新しいもの順(新しいものが先)にしていたが、やはり読み易さを考えると、アーカイブ系は古いもの順の方がいい。
ここ(noblog)では続き物はほとんどないので、どうでもいいと云えばどうでもいいんですが、一応考えてるんだぞと宣言しておきましょう。(笑) 脈脈と幾つかの話題が繰り返し続くようなサイトではぜひこうしていただけたら嬉しい(読み易い)なと思います。
メイン=新しい順(sort_order="decend")
一覧(全記事、カテゴリ内全記事)=新しい順
アーカイブ(daily, monthly, category)=古い順(sort_order="ascend")
というように変更してみました。
こういうのが簡単に変えられるのがblog系(CMS)システムの良いところですね。
ps. ついでに、今までindividual以外では本文を隠した状態で表示してましたが、アーカイブ系では全て表示に変えました。やっぱりこの方が読み易いですね。
バレンタインデーですね。blogの世界ではやっぱりバレンタインデーには日頃気になっているあの人/サイトに告るTBやコメントというのが流行っているのでしょうか?そういう一日があるのも面白いよね。(笑)
sendai-style.netの仙道さんからTBとコメントを貰ったのでサイトを見させてもらうと、その気の効いた内容には笑ってしまいました。
ぜひ次は体育館の裏に呼び出してください。って、男同士じゃや〜よ。;-)
備忘録
これはMTのテンプレートをデータベースだけでなく、外部にファイルとしても持つ方法です。
これを行うと、MTの管理ページでの編集はもちろん外部ファイルにも反映されます。また、外部ファイルをエディタ等で編集し、その後MTの管理画面でテンプレート編集やRebuildなどを行うとデータベースの方にも反映される。両方向のSYNCが成されるわけです。
設定は、左の写真のように、テンプレート編集画面で、「テンプレートにリンクするファイル」にファイル名を記述するだけです。注意しなければならないのは、ファイル名だけを書くとメインインデックスが書き出される位置、つまりMTのドキュメントルートに置かれてしまいます。これを避けるには、絶対パス(フルパス)で書くのがいいでしょう。Webで常時公開するのでなければ自分のホームディレクトリなどにディレクトリを作って、そこを指定するといいでしょう。
右の写真はこうして作成されたテンプレートのファイル一覧です。
対象となるテンプレートは、「テンプレートの編集」で見られる全てのテンプレートです。
一種のバックアップにもなりますし、設定も簡単なので、一度設定しておくことをお薦めします。
or
?
以前も悩んだ事だけど、最近またBlogPeopleが遅い。遅いと自分のページが開くまでに時間がかかる。もちろん、遅いのを見越してなるべく最後に表示されるようにしているので、実害はあまりないが、気持ちが悪くストレスになるのは事実。
MyblogListは目立ったトラブルもないし、非常に速くていいのだが、カテゴライズして表示する事ができない。このカテゴライズするのは、やはりリンク数が増えてくると、必要でしょう。
BlogPeopleはカテゴライズできて、例えば「Sendai Link」といったようにタイトルを付ける事ができる。
私の場合、RSSリーダはほとんど使わないので、BlogPeople一本にしても本当はいいのだが、遅いのに耐えられるか、、悩ましい。
結局、次のようにすることにした。
・常時表示はBlogPeopleでカテゴライズしたもの
・MyblogListは隠して表示(変な言い回しだ..)
・「ListMe」は両方常時表示
表示はまたshowhideを使うことにしよう。
BlogPeopleのカテゴライズとMyblogListからの追加は追々やる。
CSSがブラウザの違いによって挙動が異なるのは良く知られいるが、まさか自分がこんな大変な目に会うとは思ってもみなかった。
発端は、このnoblogがMac(OS X)のIEでサイドの複数のブロックが左上にゴチャっと重なってしまった事だった。
これを直すべくごちゃごちゃやってたら、Safariでもとってもおかしな現象が現れているのが見付かった。
色々と調べて行くと、<div>と</div>がちゃんと対応していなかったり、挙動の異なるタグが使われていたりといったHTMLタグのコーディング問題や、CSSのclassとid問題、ブラウザ依存の根が深そうな問題が幾つか発見された。
苦節4時間の奮闘の結果、概ね正常に表示はされるものの、上記IEとSafariでは未だに若干おかしい部分がある。
通常時はMozillaしか見ていないので、全然気づかなかった。Mozillaは結構変な物もそれなりに表現してくれるようなので、良いんだか悪いんだか。。
あと、New!マーク(★)がちゃんと表示されないというJavascriptのブラウザ依存の問題も見付かった。これは比較的簡単に直せたが、いずれにせよ、ブラウザ依存は困ったもんだ。
101Weblogでコメントを書くと Internal Server errorとなってしまいます。Trackbackはどうかな?
北斗星(左)には一度は乗りたいと思ってますが、まだ実現できていません。乗ってみたいな〜。もちろん、カシオペア(右)にも乗りたい!


コメントが追加されるとblog運用者にメールが来ますし、MT-Notifierを入れていると登録した人に同様のメールが届きますが、この時、コメントの各行の最後に余計なCR(0x0d、^M)が付いて来ます。
これを取るには、[MT]/lib/MT/App/Comments.pm をハックします。
[MT]/lib/MT/App/Comments.pm
186c186,189
< $comment->text($q->param('text'));
---
> my $comt = $q->param('text');
> $comt =~ s/\r\n/\n/g;
> $comment->text($comt);
> # $comment->text($q->param('text'));
WindowsやMacのメーラだと表示されないかもしれませんが、linuxのmewだと表示されて鬱陶しいのでこうしました。
お試しを!
早速アップデートしました。
(Milano::Monologさん、いつもありがとうございます)
今回のアップデートは、コメントSpam/Flooding対応です。
quoted from: movable type home page
In recent weeks, open comment systems, and Movable Type weblogs in particular, have become a target for comment spam and comment flooding (automated scripts that send many comments at a time to a weblog entry).
変更点
We've included a throttling measure so that comments from the same IP address can only be posted every N seconds, where N is configurable (documentation on the setting that controls N). We've also added a measure to automatically ban an IP address based on an abnormal number of comments from the same address in a short period of time. Of course, there are no perfect defenses, and if you're truly concerned about the comments on your weblog, the best defense is prevention by closing old comment threads.
もう一つ。
Also in 2.66, we've changed the behavior of <$MTCommentAuthorLink$> to use redirects when linking to URLs given in comments. The goal of this is to defeat the PageRank boost given to spammers by posting in the comments on a weblog.
MT-Notifierプラグインを導入しました。
quoted from: alfabeatさん
例えば「あそこのBlogのコメント書いたけど返信あったのかな?」とか思ったりしたことありませんか? そんな貴方にコメント返信お知らせ機能を設置いたしました。
先達の皆さんのお蔭で、無事インストールできました。
StorableはCPANで入れました。
% perl -MCPAN -e shell
cpan> install Storable
・ファイルの投稿時刻(MTEntryDate)よりも最終更新時刻がいい。 ・サーバに負荷を掛けたくない。これに従うと、(MTインストール時に付いて来る?)MTLastModifiedを使うと良さそうだ。 この値をHTMLビルド時に保持し、JavaScriptがダイナミックに参照して、最終更新時刻から現在まで指定された日日間未満なら更新マーク(New!とか★)を付ける。 最終的に出来たのは、以下の通り。 これは、与えられた年月日時分(最終更新時刻)と現時刻を比較して、指定された日日間未満なら予め指定されている≶span id=UC〜 style="display:none;〜">のスタイルdisplay要素をinlineとして表示する。48時間以上経過していたらnoneとして表示しない。 [quote] <script language="javascript" type="text/javascript"> <!-- function checkNew(id, y, m, d, hh, mm, duration){ var spid = id; if( document.getElementById ) { if( document.getElementById(spid).style.display ) { var fileDate = new Date(y,m-1,d,hh,mm, 0); var nowDate = new Date(); var days = Math.floor((nowDate.getTime() - fileDate.getTime())/(1000*24*60*60)); if (days < duration) { document.getElementById(spid).style.display = "inline"; } else { document.getElementById(spid).style.display = "none"; } } } } //--> </script> [/quote] さて、上のJavaScriptを呼び出す方は以下のようにする。 [quote] <span id="UC<$MTEntryID$>" style="display:none;color:#f00;">★</span> <script language="JavaScript" type="text/javascript"><!-- checkNew("UC<$MTEntryID$>",<$MTLastModified format="'%Y','%m','%e','%k','%M'"$>,2);//--> </script> [/quote] <span>のidはユニークにするため、UC+エントリIDとしている。後は、checkNewの呼び出しパラメータとして、予めこのエントリの最終更新時刻を設定しておく。これはエントリの追加、更新をすれば固定になる。最後の2は二日間を表す。 これで、現時刻が最終更新時刻から二日(48時間)未満の項目には★マークが付きます。 お試しを! [2004/10/4追記] 時間単位にしたいという場合。(例えば、12時間) [quote] <script language="javascript" type="text/javascript"> <!-- function checkNew(id, y, m, d, hh, mm, duration){ var spid = id; if( document.getElementById ) { if( document.getElementById(spid).style.display ) { var fileDate = new Date(y,m-1,d,hh,mm, 0); var nowDate = new Date(); var days = Math.floor((nowDate.getTime() - fileDate.getTime())/(1000*60*60)); if (days < duration) { document.getElementById(spid).style.display = "inline"; } else { document.getElementById(spid).style.display = "none"; } } } } //--> </script> [/quote] [quote] <span id="UC<$MTEntryID$>" style="display:none;color:#f00;">★</span> <script language="JavaScript" type="text/javascript"><!-- checkNew("UC<$MTEntryID$>",<$MTLastModified format="'%Y','%m','%e','%k','%M'"$>,12);//--> </script> [/quote]
post2mtはメールからMTにエントリするプログラムです。
色んな環境のインストールは不要です。
新たに追加となった機能(v1.2.1)
・au端末での画像回転用リンクの付与。(オプション)
・テキストのTEXT_MOREへの追加。(オプション)
・環境設定のテキストファイル化
・カテゴリ名の動的な指定。(オプション)
・画像の位置指定(とalign指定)。(オプション)
・MTのPublishCharsetの指定。(オプション)
・ドラフト(下書き)としてMTに投稿する指定。(オプション)
・画像ファイル名はオリジナルのファイル名を出来るだけ尊重するようにしました。但し、日本語ファイル名は残しません。
ダウンロード
最新版をダウンロードしてください。
post2mtの環境設定ファイルは以下のようになります。(post2mt.cfg)
これをwwwからアクセスできない場所に置くのがいいでしょう。
もちろん、post2mt.pl自体もwwwからアクセスできない場所に置くのが望ましいです。
# post2mt.pl 環境ファイル
# このファイルの日本語文字コードはEUCであること!sub init_config
{my %PTCFG = (
BLOG_NAME=>"blog", #blog名
BLOG_UNAME=>"username", #blogユーザ名
BLOG_CNAME=>"category", #blogカテゴリ名
IMG_DIR=>"/path/to/image/dir", #画像ディレクトリ
IMG_URL=>"http://url/to/image/dir", #画像ディレクトリURL
MAX_IMG_W=>"288", #画像サムネイル化幅
MAX_IMG_H=>"352", #画像サムネイル化縦
AU_ROTATE_URL=>"http://url/to//rotate.gif",
#auでファイルサイズが大きい時回転画像を用意する
#その際表示させる画像
#これを指定しないと回転画像は用意しない
TEXT_MORE=>1, #5行以上空行があればそれ以降をtext_moreに入れる
CHARSET=>"utf8", #MTのPublishCharsetと同じもの(utf8/euc)
);return ($PTCFG{BLOG_NAME},$PTCFG{BLOG_UNAME},$PTCFG{BLOG_CNAME},
$PTCFG{IMG_DIR},$PTCFG{IMG_URL},$PTCFG{MAX_IMG_W},$PTCFG{MAX_IMG_H},
$PTCFG{AU_ROTATE_URL},$PTCFG{TEXT_MORE},$PTCF