/ 最近 .rdf 追記 設定 本棚

脳log[2008-03-08~]



2008年03月08日 (土)

[tDiary] 続・tDiary UTF-8化 (>前回)

tDiary-devel MLより

「すでにUTF-8で運用している日記に対して、このパッチ込みのtDiaryを起動すると、さらに(EUC-JP→UTF-8決め打ちな)文字コード変換をかけようとして大変なことになります」のでご注意ください。

今から思えば、migrate.rbでの変換時や、Test_UTF8ブランチの時から、何らかのしるしをCGI生成のtdiary.confかどこかにうめこんでおくべきでした。

そんな気がしていました > UTF-8化済みのデータを EUC-JP->UTF-8変換。

だから一日待って勝手に変換してくれるのに任せようとしていた。

ダウンロードした tarballが期待したものより古かったと気付いたものの UTF-8化を最後まで行った後では、migrate.rbが印を埋め込んでいてくれることに期待していた。

漠然とした不安は肯定され、期待していた救いは否定された。

最新の tDiaryを調べて手動で印を埋め込むまでアップデートは危険。 このパッチは trunkに適用されたわけではなかった。早とちり。

というわけで必要がなくなってしまったけれど書いておくと、

tdiary_version = "2.3.0.20080302"

という行(インデントしてはいけない)を data_pathにある方の tdiary.confに付け加えておけば、再度 migrateが実行されることを回避できる。

 追記@2008-06-10: trunkの tDiaryに自動 UTF-8変換機能

今度こそパッチではなくコミット済み。migrate.rbを実行済みの人は(パッチの時とは別の)回避措置がアップデートの前に必要。


2008年03月07日 (金) 紅玉 = 赤い宝石 = Ruby だったのねん。紅玉制覇編の意味が今わかった。最近、名前に意味がある、意味を込めようとする人が多い、ということに気付いてきている。(でもこれは単なる語彙の問題)

[Ruby] Ruby-1.9.0-1: NMAKE : fatal error U1045: spawn failed : No error Stop.

miniruby.exeを作るところと、ruby.exe、rubyw.exeを作るところで止まる。何度でも止まる。

nmake の /N オプションで実行されるコマンドを表示して、自分でタイプ*、実行すると進むから不思議。

* 嘘。手打ちじゃない。


2008年03月06日 (木) 一日遅れで HUNTER×HUNTERの発売に気付く。考えられないミス。

[tDiary]バッドノウハウ: ヘッダ/フッタに #{} を含めたいときは

例えばこんな、<h1>の中身を<title>の中身と同じにし、かつ日記名部分をトップページへのリンクにする、ヘッダはエラーになる。

<h1>
  <a href="<%=h @conf.index%>"><%=@conf.html_title%></a>
  <%=title_tag[/\A<title>#{Regexp.quote h @conf.html_title}(.*?)<\/title>\z/oi, 1]%>
</h1>

原因は

 #{Regexp.quote h @conf.html_title}

この部分が tdiary.conf読み込み時に展開されてしまうから。

  1. \を使ってエスケープしても \自体が tdiary.conf保存時にエスケープされてしまっているので、tdiary.conf読み込み時にはエスケープの意味が残っていない。
  2. 二度 eRubyスクリプトとして評価されるわけではないので <%%= %> も使えない。

結局

 #{'#'}{Regexp.quote h @conf.html_title}

こうなった。

  1. 設定画面に表示されるヘッダの内容は、#{'#'} が # に展開された後のもの(つまり最初の例と全く同じもの)なので、ヘッダを修正するときは毎回 #{ を #{'#'}{ に書き換えた上で保存する必要がある。(面倒。絶対忘れる)
  2. ヘッダの内容に問題があるときは、正常に送信できたように見えて tdiary.confには保存されていないから、(忘れた頃に)絶対ハマる。
  3.  追記

    1と 2のコンボで、ヘッダ/フッダに限らず全ての設定が変更できなくなる。他の設定を保存するときでも、ヘッダの保存部分で失敗するから。(結局 tdiary.confの可読性を犠牲にして String#dumpを使用するしかないようだ)

 追記の追記: #{} の使用は避けるに限る

嫌い*だが tDiary本体をいじくるぐらいならしかたがない。今回のケースは結局 #{} を使わない形に書き換えた。無理矢理使っても面倒なだけだったので……。敗北。

<h1>
  <a href="<%=h @conf.index%>"><%=@conf.html_title%></a>
  <%=title_tag[Regexp.new('\\A<title>'+Regexp.quote(h( @conf.html_title))+'(.*?)</title>\\z', Regexp::IGNORECASE), 1]%>
</h1>

* Regexp.new()のこと。eval()や new Function()と同じくらい嫌い。※new演算子があるのは Rubyではない。


2008年03月05日 (水) 奥付のコピーライト表記は著作権者が自由にできるものなのか? ほとんどがローマ字なのでここで読みを調べることが多いのだけど、米澤穂信は漢字そのままだった。森博嗣が MORI Hiroshiだったのは 2008-02-26に書いたが、筒井康隆と清原なつのは ©Mei SEI形式だった。(『家族八景』。ただしこれは出版社が角川だからという可能性が高い)。tDiary-devel MLでは姓と名らしきものに分かれてる人のほとんどが SEI Mei形式だったことに遅ればせながら気付きました。


2008年03月04日 (火) 現在 9F。火トカゲを倒す必要がないことにしばらく気付かなかったよ。

[tDiary] fix_url() @ hikidoc.rb

ささいなことなのでここに書くわけだけど、HikiDocと tDiaryの許容する urlの違いから、tDiary同梱の hikidoc.rbの fix_url()が継ぎを当てられた結果、難解なことになっている。

    if /:/ =~ uri and %r!\A(https?|ftp|file|mailto):! !~ uri
      uri
    elsif %r|://| !~ uri and /\Amailto:/ !~ uri
      uri.sub(/\A\w+:/, "")
    else
      uri
    end
    uri.sub(/\A(?:https?|ftp|file):(?!\/\/)/, "")

上が 2008-03-04現在のコード。下は上と同じ意味になっていると思うが自信が持てない。それもひとえに前者が難解だから……。

 追記@2008-06-06: 何か勘違いしてるな

下の方のコードはほとんど hikidoc.rb(revision 93, 2008-02-16)のものだ。これを目にしていなかったはずがない。

[tDiary] tDiary UTF-8化

昨日(3日)の朝に、tDiary本体に migrate機能を付けたと読んだので、一日待って、今日アップデートしたのだけど、tarballは 2日のものだったみたい。(待った意味がない)

  1. いつも通りローカルの変更をマージ。
  2. 標準添付でない jdate.rbを UTF-8で保存し直し。
  3. tdiary.confを UTF-8で保存し直し。(しなくても動いているがコメントが悪さをしないとも限らない?)
  4. キャッシュ(yyyymm.rb, yyyymm.parser)を削除。(したけど migrate.rbが消してくれるみたい)
  5. misc/migrate.rbを index.rbフォルダに移動して実行。

どこかから拾ってきたプラグイン以外は、tDiaryを最新のものにして migrate.rbを実行するだけでいいみたい。

カテゴリキャッシュも、プラグインが(confに)保存したデータも、古いキャッシュも migrate.rbが面倒を見てくれる。

最終更新: 2010-03-22T05:44+0900

[][][Ruby][単行本] arton【Rubyを256倍使うための本 邪道編】 アスキー

著者は ActiveScriptRubyの arton氏。

この本が出た当時、Mysterious SyndromeWindows Scripting Host Laboratoryの管理人むたぐち氏が、言語は Rubyであるが、COMや WSHの話題は VBScriptや JScriptと共通だし、他にこんなに突っ込んだ類書もないので、と(言葉と内容は全然違うが)自身の掲示板でおすすめされていたのをずっと覚えている。

タイミングを逸していただけなのだ。

Rubyの名前を初めて目にしたのもこの時だったかもしれない。(「何か」(当時)の名前を目にしたのもこの掲示板が……。美耳いいよね)

あくまで目にしていただけで、初めての CGIプログラムはサンプルの多い Perlで書いたし、すぐに嫌気がさして代わりの言語を探したときに Rubyを"再"発見している。そのときに、WSHに親しんでいたことと ActiveScriptRubyの存在が Ruby採用のきっかけになった、というのは多分にありそう。

思い出深い一冊ということ。この本を通して、気付かないまま Rubyとすれ違っていたのだから。


2008年03月03日 (月) (タップするとクリックになる)タッチパッドは文字入力の敵。右の拇指球が頻繁に当たってフォーカスを移動させてしまう。パッドの位置が若干左寄りなのは認めるが、中心が Hと Jの間にあるようではまだまだ > DELLノート。そもそもトラックボールであれば……(パッドに完全に駆逐されてしまったよね。トラックポイントだけがねばってるが)。大体どれだけのフェザータッチを要求するんだ。ポインタを移動させるときだって毎度毎度……。(実験中)。タップの認識は強さでなく離す早さに依っている様子。そんな発想はなかった。(そのことからも)この認識方法はベストではない。


2008年03月02日 (日) 結城さんの『数学ガール』が日坂水柯(めがねのひと)の作画でマンガ化。どうだろう。"ガール"の部分はいいとして、"数学"の部分も満足させてくれるだろうか。


2008年02月29日 (金) 地図が不完全だからと街へ入らせてくれない一階の衛士。「あんた、鬼や」「殺意を感じたで」

> ささはら雑記 : いいお知らせと残念なお知らせ

暴風ガールズファイトの 3巻は出ない

いったいファミ通編集部は何を考えているのか。

『暴風ガールズファイト』を読んでいないラノベ読者は何を読んでいるのか。

今や読むのが楽しみなラノベとして "文学少女"シリーズと双璧をなすシリーズだったというのに。


2008年02月27日 (水) Amazonから Edy 1000円分。メールで「当選」とか目にしても「結局、金払わされるんじゃ」としか思えない罠

[Vista]定期バックアップが初めて正常に終了した

理由がわからない。前回の失敗から今日までに、該当しそうな* Windows Updateはないし。

その期間にあったことといえば、再起動時にディスクチェックを強く薦められて

One of your disks needs to be checked for consistency. You may cancel the disk check, but it is strongly recommended that you continue.

Windows will now check the disk.

結果、いくつかのエラーが訂正されたこと。

CHKDSK is recovering lost files.

Correcting errors in the master file table's (MFT) BITMAP attribute.

Correcting errors in the Volume Bitmap.

Windows has made corrections to the file system.

これしかないという気はするが、バックアップが失敗していたのは去年の二月に Vistaをインストールした当初からで、chkdskも今までに何度か実行している。最近になってエラーが発生して訂正されたことがバックアップ成功の理由?

* こういう素人判断が原因の見落としにつながるのだ、と思われる前に書いておくと、「Definition Update for Windows Defender」が 2/22と 2/28にインストールされただけ。


2008年02月26日 (火) 名前をローマ字表記にするときに、アルファベットを使う特定の国の慣習に従って姓と名をひっくり返す必要はないと思っていた。大文字を使うことで姓を示す方法を知った。ふと手元の本の奥付を見たら著者のローマ字表記が SEI Meiになっていて、「お、さっそく」「すでに普及しているのか」と思った。出版社は中央公論新社だが著者は森博嗣。……。著者が要望を出した特殊例だった、に 100ガバス。


2008年02月25日 (月) Firebugのプロファイラの時間分解能は Windowsに依存する。普段は 15ms単位だが音楽を再生しながらだと 1ms単位になる。これに関係する話を「NyaRuRuの日記」だったかどこかで読んだ記憶がある。見つけた > http://d.hatena.ne.jp/NyaRuRu/20080123/p1


2008年02月24日 (日)

[W53S] W53Sで、受信したメールの本文をコピーするときは 5ステップ

http://sho.tdiary.net/20080222.html#p01

ここで W31SAと D705iμの例が出ていたので、にっくき(笑)ソニーエリクソンではどうなっているのかを紹介。

  1. メニュー
  2. [7] 本文コピー
  3. (始点を選択)センターキー
  4. (終点を選択)センターキー
  5. 「コピーしました」(タイムアウト付きメッセージ。せっかちな人はセンターキーかクリアキー)

補足など。

  • 送信メールじゃないので切り取りはできません。
  • (始点を選択)、(終点を選択)というのは画面下部のステータスバーに当たる部分に表示されているメッセージ。(ちなみにタイトルバーには「範囲選択」)
  • D705iμで問題にされているタイムアウト付きメッセージは W53Sにも一か所ありました。
  • W31SA < メールの内容をコピーしたい人に対していきなり「範囲指定」を選ばせるのは直観的でないと思う。**4

* 機種でそのように統一されてるだろうから、二回目からはすぐにわかるだろうけど。

 最後にコピーか切り取りかを選ばせることで他の二機種にある「コピーしました」のメッセージが省けている。

 最初のとまどいよりそれ以降の使い勝手の方がずっと大事。

*4 ということは、やっぱり優秀なのか?


2008年02月22日 (金) DSの FF4は敵が強いらしい。キャラに声があるらしい。初めてプレイした FFであり、パラディンになったあたりで中断してしまってもいるので非常に気になる。セガハードに縁がなかったので、PS2で昨日発売になったナイツとか、ゲームが豊作