この日記にはツッコミを入れられます。 ツッコミを入れたい日付をクリックすると、フォームが現れます。
xreaでtDiaryを使う方法はxrea.com で tDiary を使う方法やインストールメモやXREA + tDiary + Namazuをどうぞ。
✑ ツッコミをしやすいようにとか、リンクされたときにわかりやすいようにtDiaryに移転することにした。
nDiaryと同じで空行が入れられないという問題がありますが…。
.htaccessや.htpasswdはother権限で読み込めないと効かない。
ディレクトリ(t,t/erb,t/theme)のパーミッションは705。
index.cgiとupdate.cgiは*.cgiは700。.htaccessが効かない問題で悩んでいたときに*.rbから*.cgiに変えてしまったのでそのまま。
erb/*とtdiary.rb、つまり*.rbは600。cgiが実行時に読み出すだけだから。+xは必要ない。
その他のtdiary.confや*.rhtmlなども600。cgiが実行時に読み出すだけなので。
t/theme/*のパーミッションは604。ブラウザで普通に読み出せるようにするため。
README.htmlとHOWTO-write-tDiary.htmlも置くのなら604。
public_html/t/.htaccessの内容は以下の通りでパーミッションは604。データ用ディレクトリtdiaryはパーミッション701で、その中のtdiary/.htpasswdのパーミッションは604。
<Files "*.rhtml">
deny from all
</Files>
<Files "tdiary.*">
deny from all
</Files>
<Files update.cgi>
AuthName tDiary
AuthType Basic
AuthUserFile /virtual/znz/tdiary/.htpasswd
Require user znz
</Files>
705(drwx---r-x) ~/
701(drwx-----x) +--tdiary/
604(-rw----r--) | +--.htpasswd
644(-rw-r--r--) | +--200109などの後から生成されるファイル
705(drwx---r-x) +--public_html/
701(drwx-----x) +--t/
604(-rw----r--) +--.htaccess
700(-rwx------) +--*.cgi (index.cgi,update.cgiなど)
| (オリジナルのままならindex.rbとupdate.rb)
600(-rw-------) +--tdiary.rb (requireで読み込まれるだけなので
| 実行権限はいらない)
600(-rw-------) +--*.rhtml
600(-rw-------) +--*.rtxt
600(-rw-------) +--*.conf (ちゃんと設定しておくこと)
604(-rw----r--) +--*.html (なくてもいい)
700(drwx------) +--erb/ (公開しないのでotherの権限はいらない)
600(-rw-------) | +--*.rb (tdiary.rbと同じでrequireで読み
| 込まれるので実行権限はいらない)
701(drwx-----x) +--theme/ (公開用なのでotherのxが必要)
604(-rw----r--) +--*.css, *.png
(すべて公開用なのでotherのrが必要)
nonsense talkが更新されてなくてもnAntennaの情報がこっちになってるのはたんぽぽ ひとりごと。から情報をもらってるから?
入れるときに信頼性の高い「実験的日記」(2001-08-31)を参考にしたんですが、参考に仕返されたようで。
リンク元置換リストを追加してみた。
2001年9月9日問題はWindowsMEやCVSupにあったらしい。
リファレンスはRuby GUI センターからリンクされているPhiが一番詳しいみたい。ComboBoxがないみたいだけど。
apollo.exeだと自動でinclude Phiされているらしくruby_ap.exeで実行したときにPhi::の付け忘れが発覚した。
今、うさにっきとかhttp://www.dm4lab.to/~kjana/ruby/ruby.htmlにつながりません。
最新のページには<meta name="ROBOTS" content="NOINDEX">をつけた方がいいような気がするんですが、tDiary(のデフォルト)ではつけないんでしょうか?
RWikiはrwiki.rbというバックエンドが必要という条件が厳しいからキラーアプリになれなかったのかな。
^http://(?i:hachi.haun.org)/tp/.* たんぽぽ ひとりごと。
にして置換はされるようになったけど。
別々にカウントされるのはindex.htmlの有無と同じで気にしないというのが一番よさそう。
実は2通りあったらしい。
9桁で処理していたら破綻する(した)というパターンは結構少ない気がする。
もう1つは数値で比較すべきところを文字列で比較してしまっていたというもの。perlのCGIでありがちらしい。
フォルダの名前をfooからbarに変えたような時にfoo/hogeがbar/hogeにならずにfoo/hogeのままだったので、for d in .foo.*; do mv $d `echo $d|sed -e 's/foo/bar/'`;doneで無理矢理変更。
2001年9月6日(木) 9:00 〜2001年9月11日(月) 9:00の間停止というメールが停止が終わってから1日以上経ってから(JSTで今日の20時に)届いた。終わってから届いても遅いって。こういう連絡メールだけは停止前に配送してしまうということはできなかったのかなぁ。
Vine Linux 2.1.5やVineSeedのwdmで修復モードでさえログインできなかった原因は、.Xdefaultsか.Xresources(シンボリックリンクにしているのでどっちなのかは不明)がsyntax errorだったかららしい。
と思ったらそうでもなかったらしい。syntax errorを直したら.xsession-errorsができなくなって、setime noneをしたら、.xwm.msgsもできなくなったので、てがかりがさっぱりなくなってしまった。
dRubyで呼び出し中にThread#raiseで呼び出し側に例外があがったらどうなるんだろう?
#! /bin/sh
SHELL=`${HOME}/etc/shell.sh`
if [ -n "$SHELL" ]; then
export SHELL
exec $SHELL -l
fi
ちなみに~/etc/shell.shはこんな感じ。zshもtcshもない環境ではbash -lはだめでbash --loginとしないといけなくて残念な思いをする予定。
#! /bin/sh
for SH in zsh tcsh bash csh; do
for BIN in /bin /usr/bin /usr/local/bin; do
[ -x ${BIN}/${SH} ] && echo "${BIN}/${SH}" && exit 0
done
done
exit 1
deb http://deb.ruby-lang.org/debian potato main contrib non-freeを例にするとこんな感じなのでしょうか?
debはdebのバイナリパッケージで/dist/potato/(distは固定?)のさらに下のmain/binary-all/Packages{,.gz}にパッケージ一覧がある。メールを捨てるには/dev/nullに送るのではなく"#"だけ書いておくのがいいらしい。
というのがついてるところが最近多い?
tDiaryってツッコミを考えると単純な1ページのみをダウンロードする巡回ソフトと相性が悪そう。
yamk 日記のアンテナボタンで思い出しましたが、悲しいのでscript必須ならdocument.writeで動的に出してほしいです。noscriptに代わりのa要素があればもっとうれしいです。
例としてはAutoSaveとか。そういえばこれって</がそのまま書いてあるというのが別ファイル専用という感じ。
Debian(potato)のtmpreaperだと/tmpだけ処理されて/var/tmpはそのままなのに、Vineではtmpwatchによってしばらく使われていないファイルは消されてしまう。
rpm.labelCompare((None,None,None),(None,None,None))でsegmentation fault。
IMAPのアカウントで使ってみようかと思ったら、CRAM-MD5の認証に対応してなくて使えず。
サーバが落ちてなくても重ければ更新できないという罠が。
鳩丸ご意見番 - 残念な思いを致しました(2) - 謎のアンカーには残念な思いを致しました。と同じです。
ちなみにこういう「大分類 - 中分類 - 小分類」という並びでtitleが書いてあると複数のページを一気に開いたときにタスクバーなどで頭の何文字かしかわからないので、区別しにくくて残念な思いをします。
日記ページで順番を変えて数字だけ見えてたらそれはそれでもっと残念な思いをしそうですが。
mkdirでフォルダを追加しようとしたら、MUAから見ても追加されてなかったのでなぜ?と思ったら、maildirmakeで作らないとだめだったみたい。
Vine専用ではないけど置く場所に悩んだのでvineディレクトリにrpmVersionCompare.pyとrpmLabelCompare.pyをおいてみた。
rpm-pythonが必要。
% rpmVersionCompare.py kernelcfg kernelcfg_0.6-9vl1_i386.rpm kernelcfg 0.6 9vl1 == kernelcfg 0.6 9vl1 # 0 0 % rpmVersionCompare.py libruby_1.6.4-0vl2_i386.rpm libruby_1.6.4-0vl8_i386.rpm libruby 1.6.4 0vl2 << libruby 1.6.4 0vl8 # -6 6rpmLabelCompare.pyはあらかじめname version releaseに分割しておいてから引数に渡すと
rpm.labelCompareを呼び出して比較した結果を標準出力にprintするだけというかなり不便な手抜きスクリプト。rpmVersionCompare.pyでrpmdbから複数見つかったときの比較には使えるかも。
% rpmLabelCompare.py man 1.5i 10vl1.2 man 1.5i 10vl1 1
機能があっても気づかなければ意味がない対策としてリンク元置換リストにないURLからのリンクがあったときはツッコミと同じようにメールで通知するというのを思い付きました。
RWikiのRDをそのままCVSで管理しようとすると、CVSというページがあるとまずいというのは.rdをつけてからCVSにいれることで回避していたが、CVSのキーワード($Date$など)があるとまずいかもしれないというのを気にせず放置していたら、CGIで見事に罠にはまってしまったので、cvs admin -ko *.rd; cvs upした後、$Date$を消しておいた。
Refererチェックメールって本日のリンク元が0から1になるときだけということにすれば専用のステートは持たなくていいと思ったんですが、書き忘れてたかも。
閲覧者に警告が見えるのって適切なclassがついててユーザスタイルシートで隠蔽できればなんとか。HNSのも自分で隠す設定にしておけばいいのか。調べておこう。
コメントや閉じタグは思いっきり忘れてました…。コメントタグってIE独自拡張の<comment>のことですか?っていうわかりにくいぼけはおいといて、<!-- これ -->は注釈宣言っていうのが正式名称のようです。とりあえずタグじゃないというのは覚えておいた方がいいいと思います。
orphanは簡単にできたけどorphanのページからリンクを開くと、リンクされてなかったから読み込まれてなかったファイルが読み込まれてしまう。
許可が出たので幹にcommit。ということは次にRWikiがリリースされるときには入るはず。
>に関してはXML 1.0 日本語版の2.4 キャラクタデータ・マークアップによると「大なり不等号 (>) は,"
」と書かれていて(原文では「>" という文字列を使って表わされてもよくThe right angle bracket (>) may be represented using the string "
」)となっているので「>」のままでも構わないと思います。>"互換性のため (for compatibility)
というのはSGMLとの互換性なので、HTMLやXHTMLではこだわる必要はないと思います。
ここはいつ1.6.5になるんだろう?
(?:...)?の入れ子でややこしくならなくて済みそうだけど、引数までまとめてチェックするのは無理という弱点が。これを使うのならあらかじめsplitしてからになりそう。
module OmitableMatch
def ===(o)
/^#{Regexp.quote o.to_s[0, self.size]}/.match self
end
module IgnoreCase
def ===(o)
/^#{Regexp.quote o.to_s[0, self.size]}/i.match self
end
end
end
# 使用例
hoge = 'hoge'
hoge.extend OmitableMatch
hoge === 'hoe' #=> nil
hoge === 'hog' #=> MatchData
hoge.extend OmitableMatch::IgnoreCase
hoge === 'Hoge' #=> MatchData
st.foo!とかst.bar!で状態変更でst.foo?や:foo === stで状態のチェックができる。===を定義しているので、case ... whenで使うのが便利。
class State
def initialize(*arg)
@states = arg.collect{|s|
case s
when Symbol
s
when String
s.intern
else
raise ArgumentError, "#{s} is not a symbol or a string"
end
}
@states.each do |i|
eval %Q{
def #{i}!
@state = :#{i}
self
end
def #{i}?
@state == :#{i}
end
}
end
__send__ "#{@states[0]}!"
end
attr_reader :states, :state
def ===(state)
@state == state or @state == state.intern
end
def ==(o)
@states == o.states and @state == o.state
end
def to_s
@state.to_s
end
def _dump(lv)
"#{@state} " << @states.join(' ')
end
def State._load(s)
state, *states = s.split
State.new(*states).__send__ "#{state}!"
end
end
if __FILE__ == $0
st = State.new(:a,:b,:c)
st.b!
st.c? #=> false
case st
when :a
# a
when :b
# b
when :c
# c
end
end
(追記)case...whenで使えるかと思っていたら、Symbol#===やString#===が呼ばれるのでだめだった。
<font color="red">だった…。ユーザスタイルシートで何とかするのは無理そう。
いつの間にかここ(xrea)も1.6.5になっていたようです。
結構参照されているようなので、2001-09-23追記として全ファイルのパーミッションをまとめ直してみました。
n日記の方にバックアップしていなかった日記もバックアップした。
ある文字列とある文字列を含むものにマッチする正規表現は環境によってはfoo.*bar|bar.*fooで代用していました。
アンテナによっては更新日時(Last-modified)が取れないみたいなんですけど、取れるアンテナと取れないアンテナのリクエストってどう違うんでしょうか?
% rfc-tree.rb
Obsoletes> 2821
2821 Simple Mail Transfer Protocol. J. Klensin, Editor. April 2001.
(Format: TXT=192504 bytes) (Obsoletes RFC0821, RFC0974, RFC1869)
(Status: PROPOSED STANDARD)
2821
821
788
780
772
974
1869
1651
1425
Obsoletes>
input: "Obsoletes" "Obsoleted by" "Updates" "Updated by" or number
Updates> Updated by
Updated by> 822
0822 Standard for the format of ARPA Internet text messages. D.
Crocker. Aug-13-1982. (Format: TXT=109200 bytes) (Obsoletes RFC0733)
(Obsoleted by RFC2822) (Updated by RFC1123, RFC1138, RFC1148,
RFC1327, RFC2156) (Also STD0011) (Status: STANDARD)
822
1123
2181
2535
2931
3007
3008
3090
1138
1148
1148...
1327
1495
2156
Updated by> ^D
% rfc-tree.rb -h
Usage: /home/kazu/bin/rfc-tree.rb [options]
-h, --help show this message
-d, --[no-]debug debugging
-i, --rfc-index=<rfc-index> use <rfc-index> instead of ./rfc-index.txt
--Obsoletes show "Obsoletes" tree
--Obsoleted-by show "Obsoleted by" tree
--Updates show "Updates" tree
--Updated-by show "Updated by" tree
% rfc-tree.rb --Obsoleted-by | head
1
2
3
10
16
24
4
5
6
7
%
ループにならないように...で省略するようにしていますが、ループではなく直接や間接でobsoleteやupdateの関係にあるものが...で省略されているようです。
If-Modified-Since付きのリクエストだとLast-modifiedなどのヘッダが消えてしまうらしいのです。mod_layoutかなにかの問題でtDiaryの問題ではないと思うのですが。
If-Modified-Sinceは関係なくてGETリクエストだとCGIが出力したヘッダを全部捨ててしまうようです。HEADだと素通し。HTTPってHEADとGETで同じヘッダを返せとなってるはずなのに。
cvs で checkout できるけど update とかできないのって、今まではまったことがあるのは、そのディレクトリに入ってないとだめとか間違ってsticky tagとかがついてるとかかなぁ。
zshのプロンプトの一部をscreenの内部ではXTITLE=$ESC'P'$ESC']0;['$WINDOW']<%n@%m:%~>'$BELL$ESC\\にした。Manpage of SCREENの仮想端末のところの説明によるとESC PからESC \まではscreenが解釈しないでそのままターミナル(今回はttssh)に送ってくれる。ESC ]0;から\a(今回はあらかじめ設定してある$BELL)まではttsshがwindow titleに設定してくれる。$WINDOWはscreenのWindowの番号で%n@%m:%~は普通のzshのプロンプトとして解釈されるユーザ名、ホスト名、短いパス。
IEのファイルを開くでWebフォルダとして開くにチェックを入れて開こうとしたら、Windows UpdateでWebフォルダがインストールされた。Windows 95でも使えるらしい。
foo-bar@hogeのメールが来てないのかと思ったら、bar@hogeの方に振り分けられていた。以前にも同じようなことがあったからX-ML-NameではなくReply-Toで振り分けていたのに同じ罠にかかってしまった。
ruby -dで実行していたらdRubyの中でrescueされていない例外が原因で終了してしまって困ってしまった。
Another HTML-lintのMLとw3m-devと謎ラウンジで話題に。ISBNはnDiaryのフィルタを参考にするのがいいかもしれないと思ったけど、1つのURNから複数のURLに変換してしまうとリンクをたどりにくそう。
ハードディスクのパーティションの切り方のドライブレターのところに書いてあることがそうでしょうか。
真似してみた。動作確認はIE5.5SP2とNetscape 6.1。IE5.5SP2の方はローカルで確認したときはうまくいってるのにHTTP経由だとうまくいってないみたい。セキュリティゾーンの設定の問題?
Before...
✑ cukimbo [aldara http://aldara]
✑ aaaaa [aaaaaaaaaaaaa]
✑ aaaaa [aaaaaaaaaaaaaaaaaaaa]