2003年11月11日(火) 今日からカーニバル [同日]
● 正式には(?)、11月11日11時11分から2月(かな?)のファッシングまでがカーニバルだそうな。
● [memo] vimでutf-8のファイルを扱う
ja_JP.EUC-JPな環境でvim-enhanced-6.2.127-3mで確認。vimを起動したら、
:set enc=utf-8 tenc=euc-jp
しておく。xでちゃんと一文字ずつ消えるし、 Mozillaで見た限りではUTF-8で保存されているようだ。 Jなどで結合された行の間に半角スペースが入っちゃうのは、
:set fo=M
で防げる。helpを見ると、 vimではキャラクタコード(?)が255より大きいものをmulti-byte characterとして 動作を変化させているようだ。 そうすればISO-8859-1のウムラウト文字はmulti-byte characterにならない。 この基準はHikiでも使えるかな?
● [memo] w3mmeeの設定(2)
きたさんも言ってるように(言ってない) ドキュメントを読まないと設定できないなんて、バッドノウハウの塊である(暴言)。
昨日の設定では、 tDiaryのタイトルなど一行の入力にもvimが起動する事態になっていた。 README.mee.configを読んで、「一時使用のbrowsecapエントリ」を
x-w3m-edit/textarea; /usr/bin/vim %s ;needsterminal ;x-w3m-internal
にすることで回避できた。 この設定をまちがえるとjedが起動され、何かのタイプミスでそれが異常終了すると w3mmeeも終わってしまう。編集中の文章はどこえ…また血管切れそう。
そういえば。w3mmeeが使った端末は^Dでログアウトができない。あぁ…。
● [memo] オープンソース的コラボレーションが社会を変える
圏外からのひとことより、梅田望夫さんの記事に関して。
プログラム以外で共同作業することの何が革新的かを考えた時、 単に掲示板やメーリングリストで議論することではなくて、 「教養を共有しない人たちの協同作業」と位置づけると、 その本質が見えてくると思います。
自分の少ない経験を顧みる*1と、いくつかの「教養を共有しない人たちの共同作業」を見てきたな、と気づかされます。プロジェクトの中のだれもが自分の理解できる範囲の中だけで判断をして、その結果できあがるものは、なんだかチグハグ。
「結果だけでなく過程を」そして「教養に代わるもの」 を共有していけるようにしないといけない。
*1 送り仮名が多すぎるような気がするのですが、skkの辞書には入っていないのでこれでいいのかな。
● [Ruby] Rubyで日本語文字と1バイト文字を見分ける
ちょっとだけ調べてみたら、jcode.rbのmbchar?を使うのがよさそう。 Hikiの場合は前の:nomral_textの最後と今の:normal_textの最初を気にするので、 String#scanも使って (正規表現は$KCODEを適切に設定すればマルチバイトに対応しているみたい)
Index: html_formatter.rb
===================================================================
RCS file: /cvsroot/hiki/hiki/style/default/Attic/html_formatter.rb,v
retrieving revision 1.1.2.20
diff -u -u -r1.1.2.20 html_formatter.rb
--- html_formatter.rb 2 Sep 2003 12:24:45 -0000 1.1.2.20
+++ html_formatter.rb 11 Nov 2003 16:34:58 -0000
@@ -4,6 +4,7 @@
require 'hiki/util'
require 'hiki/interwiki'
require 'hiki/aliaswiki'
+require 'jcode'
module Hiki
@@ -114,6 +115,12 @@
end
private :flush_normal_text
+ def need_space?( former, current )
+ return false if not former or not current
+ not former.scan( /.?\z/ )[0].mbchar? and not current.scan( /\A.?/ )[0].mbchar?
+ end
+ private :need_space?
+
def to_s
html = ''
toc_level = 0
@@ -131,6 +138,7 @@
if pre
html << "#{t[:s].escapeHTML}\n"
else
+ normal_text << ' ' if need_space?( t[:s].escapeHTML, normal_text )
normal_text << "#{t[:s].escapeHTML}"
if toc_level > 0
toc_title << t[:s]
こんな感じ…なのだが。 「'」がparser.rbで特殊文字として扱われてtokenに分解されちゃうので、 例えば、「Foundation's software」が「Foundations ' software」に 化ける。うーむ。parser.rbもうまいこと直さないといけないのう。 (IRCでsakuroさんにいただいたパッチを基本にしています。 sakuroさんのパッチだと空白の必要な文字を限定して定義してるかわりに、 上記の問題は起きない。) 日本語以外のHikiを使ってる人はどうしてるのかも見てみないとね。
脳味噌から汁が出るくらい考える。こともある。
最近のツッコまれどころ