2008/08/20(Wed)adiaryでStatus:404を返すように

2008/08/20 20:17 NetService::adiary
Google ウェブマスター ツールを使ってサイトの情報を確認しようと思ったら、"サイトの管理者かどうかの確認が要る"ということだったので、"HTTPファイルをアップロード"を選んだわけですが、adiaryがエラーページでステータスコード404を返さない仕様のため、処理が完了しなかった。

なので、ちょっとスケルトンを修正して404を出力させるように変更。
--- diary.skel/_main_onelog.html        2008-08-18 22:01:02.000000000 +0900
+++ diary.user.skel/_main_onelog.html   2008-08-20 20:10:02.000000000 +0900
@@ -13,6 +13,7 @@
 <$ifmessage(v.diary_id, "日記帳 <@v.diary_id> が存在しません", "日記帳が指定されていません")>
 <$ifmessage(v.diary_id && ! Auth.ok, "もしあなたが「ID:<@v.diary_id>」ならば、右上からログインしてください 。")>
 <$else>
+<$if(!v.load_days, print_header("Status", "404"))>
 <$ifmessage(!v.load_days, "該当する記事がありません")>
 <$end>
 <@ifexec(Message, begin)>
_main.htmlの方も修正した方がいいのかもしれないけど、一覧表示で記事が無いことは、blog開設直後だけだろう……ということで放置。

w3m Tips

↑の確認をしようと思ったのだが、たまたま使っているPCにはProxomitronが導入されておらず、ブラウザはSleipnirだった。
Firefox+LiveHTTPHeadersを使えって話だけど、わざわざヘッダー確認のためだけにブラウザを導入するのは大げさなので、ターミナル一枚開いてw3mでどうにかできないかと……。

便利なオプションがあった。
$ w3m -dump_head http://mo.kerosoft.com/test
HTTP/1.1 404 Not Found
Date: Wed, 20 Aug 2008 11:10:28 GMT
Server: Apache
Cache-Control: max-age=0
Last-Modified: Tue, 19 Aug 2008 18:57:14 GMT
Connection: close
Content-Type: text/html; charset=UTF-8;
w3mを自分の鯖にも導入しておこうかしら。

2008/08/20(Wed)VAIO TXでSDHCを使えるようにする

2008/08/20 03:33 Hardware::VAIO

なぜSDHC?

VAIO VGN-TX92Sには、MemoryStickスロットの他、SDスロットが標準装備されている。
私の使っているデジカメはSD/SDHCカードを使用するタイプなので、A-DATAのSD2GBをカメラとVAIOによく行き来させていた。

が、昨今マイドキュメントの肥大化により内蔵HDDの窮屈さに悩まされていたところ、SDHC 16GBが5000円しないというニュースを受け、早速買ってきた。
A-DATA SDHC 16GB Class6、ark@秋葉原にて\4980だったっけ。

SDHCを使おうにも…

VAIO TXシリーズはSDカードをサポートしているが、SDHCカードはサポートしていないと公式FAQに書いてある。TZシリーズなら対応しているのだが…。

続きを読む

2008/08/18(Mon)adiary v2.003

2008/08/18 22:34 NetService::adiary
帰宅したので早速blogエンジンもバージョンアップ。
基本的にはファイルを上書きするだけのようでした*1ので簡単です。
アーカイブ内のファイルを更新して満足してて、diary.user.skel内の変更を再適用するのを忘れてたりしましたが、それを行った後もなんかスクリプトエラーが出たり警告が出たりしてたので、軽く調べてみました。
CSSのアンダーバーハックのように意図した物を変に書き換えてたら申し訳ないですが…。
theme/satsuki/base.css line:132
-    text-decoreation:   none;
+    text-decoration:   none;

theme/hatena/_additional.css line:83
-    text-decoreation:   none;
+    text-decoration:   none;

theme/satsuki/bigblue/bigblue.css line:48
-    line-height:            130%
+    line-height:            130%;

theme/satsuki/bigblue/bigblue.css line:604
-    margin:                 0.2em, 0;
+    margin:                 0.2em 0;

theme/satsuki/bigblue/bigblue.css line:825
-    background-position:    center middle;
+    background-position:    center center;

theme/satsuki/bigblue/bigblue.css line:881
-    background-position:    middle center;
+    background-position:    center center;

※cf. http://www.w3schools.com/css/pr_background-position.asp

theme/resizeform.js line:147
-    target.gripH.style.height = (target.base[3]-gripsize)+'px';
+    if(target.base[3]-gripsize >= 0){
+        target.gripH.style.height = (target.base[3]-gripsize)+'px';
+    }

※「日記を書く」ページでのスクリプトエラー対策。heightが負になるところがあるようなので、その暫定対応です。
このスクリプト自体は深く追ってないので、こうしていいものなのかよく分かってはいませんが…。

*1 : でもよく見ると1.991から(1.44~2.00β未満の人も)はどうしたらいいのか明確には書いてない…^^;

2008/08/17(Sun)adiary C74 Special Editiou

2008/08/17 00:55 NetService::adiary
サークル参加の合間にお邪魔して買ってまいりました。adiary C74 Special Editiou
Editionじゃないらしいです。中のReadmeにその理由がw
その後でわざわざこちらのブースに足を運んでくださって、当サークルの頒布物「ぱねりあ」をお求めいただきありがとうございます。ちょっとランタイム(.NETとかMDXとか)の導入が煩雑ではありますが、遊んでいただければ幸いです。<adiaryブースの皆様
# 後からどなたがどのハンドルネームなのか伺えばよかったな…と後悔。

で、ホテルに戻ってさっそくテーマ適用してみました。
一応技術系のblogなので、シックな感じのbigblueテーマが気に入りました。(今見てるテーマがそれ)
頒布CDにはテーマがほかに数種類と、新バージョンのadiary v2が収録されているようなので、システム本体は帰宅後に調整してみることにしよう…。

# [CD]\theme\satsuki\satsuki\.svnなんてフォルダがあったり…(ぉ
バージョン管理、ホント便利ですよね。私も多用してます。

2008/07/31(Thu)adiaryのカウンタについて

2008/07/31 01:00 Languages::Perl
このModus Operandiがお世話になっているadiaryというBlog Systemはカウンタ機能を標準で持っていないので、3か月前くらいに自分で作ったのだが、たまたま友人から「ページビューが1増えたり2増えたりしてるぞ?」と報告をもらって色々調べてみた。


仕様としては、自分でPerl Moduleを一個作って/lib/Satsuki/に入れ、diary.user.skel/_sidebar.htmlのSystem Infoのとこにloadpmと値参照を加えるだけ。

とまぁ、そこまではいいのだが、やっぱりページビューを測るとなんかおかしい。
最初は自分の書き方が悪いのかと思ったのだが、どう考えてもforやwhileなどの繰り替えしを通らない部分に、カウント値の1upのコードを書いているので、おかしい……と悩んだ挙句、_sidebar.htmlが複数回呼ばれることがあるという結論に至った。

adiaryの中身をあまり詳しく見たわけではないのでよく分からないけど、1回しか呼ばれない場合と、2回呼ばれる場合がある模様。

そもそもカウンタはimgタグで対応してくれというのが作者の思惑なのかはわからないけど、とりあえずテキストカウンタにこだわりたいので現状のスタイルを保持して正しくカウントするには……と考え、PageViewの方はtime関数の戻り値が1以上ずれない限りカウントアップしないようにすることで対応した。
(ほんとは$$とかで対応しようかと思ったけど、speedy_backendが立ち上がりっぱなしなので、この手が使えない)

というわけで、同一時刻に複数からアクセスしても逆に1増えない、という状況になってしまったが、致し方ない。
細かい統計はGoogle Analyticsで見るか……。

原因が分かった 2008/07/31

開発者のnabe様から的確なコメントをいただき、一発で原因が分かりました。ありがとうございます。
どうやらブラウザが勝手に読みに行くfavicon.icoや存在しないRSSファイルを憶測で読みに行く時の404 Not Found画面でカウントアップしている感じでした。
<@ifexec(v.load_days, begin)>
<$c=loadpm("SimpleCounter")>
<@c.counter>
<$end>
404の"記事がありません"のメッセージ文を参考に、上記のように書き換えたことで、意図する動作になったかな。