« 2009年7月 | トップページ | 2009年9月 »

2009年8月

2009年8月22日 (土)

テキストファイルにタイムスタンプを打つ

テキストファイルにタイムスタンプを打つ

Time-stamp: "Wed Jul 22 11:33:24 JST 2009"

自分のパソコン内にあるファイルであればその作成日時や更新日時を知るこ とができる。できるとはいってもその手順は結構面倒である。自分のパソコ ン内にあるファイルならエクスプローラを使ってファイルのプロパティを見 る。

ファイルがインターネット上にあるとその更新日付を知ることはできない。 誰かのホームページがいつ更新されたかはその画面の最後に表示される 「Last modified: (日付・時刻)」のような表示によるしかない。

従来型ホームページのhtmlファイルをftpクライアントでホームページの サーバーにアップロードする。そのときローカル(自分のパソコン)でのファ イル更新時刻がファイルにくっついて転送先に行くわけではない。リモート (サーバー)でのファイル日付はアップロードした時点の日付になる。ftpに よるファイル転送にはローカルとリモートのファイル日付を同じにする仕掛 けがない。

インターネットを介してローカル(自分のパソコン)からリモート(ホムペー ジサーバー)に送ったファイルのタイムスタンプはリモート(サーバー)が受 け取った時刻になる。自分のパソコンでの最終更新時刻ではない。

他人のホームページを自分のパソコンに丸ごと保存してもそのファイル日付 はたぶんダウンロードした時刻になる。結局ホームページの作成・更新日付 を知ることはできない。そのためホームページには更新日付を入れる習慣が ある。

ココログに新規ページを投稿したら「下書き」、「公開日時指定」、「今す ぐ公開」のどれかを選ぶ。公開したページは、ココログのコントロールパネ ルのファイルマネージャーに表示されるようになる。保存した時刻の「年」 名(2009年なら「2009」)ディレクトリ(フォルダ)下の「月」名(7月なら 「07」)ディレクトリに収納される。未公開のページはファイルマネー ジャーに現われない。

インターネット上にある(テキスト)ファイルの更新日付は分からない。それ では不便なので(テキスト)ファイルそのものに更新日付を書き込んでしまお うと考える。手動で書き込むのはスマートではない。上書き保存したらテキ ストエディタが自動的に更新日付を書き込んでくれるようにしたい。

テキストファイル更新時刻の自動挿入

htmlファイルを、テキストエディタmeadowにhtml-helper-mode.elを入れて 編集するとファイルの最終更新時刻を自動挿入してくれるようになる。同様 のものにmeadowに最初から付属しているtime-stamp.elがある。

実はtime-stamp.elを使おうとするはるか以前からhtml-helper-mode.elを 使っている。そのときは「.el」ファイルの内容を見てない。たぶん time-stamp.elに頼っているのだろうと思い込む。そうではなかった。依存 関係はない。html-helper-mode.elはtime-stamp.elに依存せず独自に処理す る。

今回プレインテキストファイルにも更新時刻を挿入しようと考える。そこで time-stamp.elとhtml-helper-mode.elを比べてみる。そうして html-helper-mode.elはtime-stamp.elを呼び込んでないことに気付く。

time-stamp.elには御仕着せのタイムスタンプのフォーマットが仕込んで ある。このことはhtml-helper-mode.elでも事情は同じである。

次の記事を参考(~/.emacsへの記入)にして(というか丸写し)して使えるよう になる。日付時刻に日本語は入らないほうがよい。文字コー ドの違いによる文字化けを避けるためである。ファイルの先頭から8行以内 にTime-stamp: <> またはTime-stamp: " " が見付からなければタイムスタ ンプは挿入されない。タイムスタンプが必要なければこの文字列を入れなけ ればよいのである。

日付・時刻の形式は次のようなものになる。
Time-stamp: <Thu Jul 02 08:52:50 JST 2009>
;;; 最終更新日の自動挿入
;;;   ファイルの先頭から 8 行以内に Time-stamp: <> または
;;;   Time-stamp: " " と書いてあれば、セーブ時に自動的に日付が挿入される
(require 'time-stamp)
;; 日本語で日付を入れたくないのでlocaleをCにする
(defun time-stamp-with-locale-c ()
  (let ((system-time-locale "C"))
    (time-stamp)
    nil))
(if (not (memq 'time-stamp-with-locale-c write-file-hooks))
    (add-hook 'write-file-hooks 'time-stamp-with-locale-c))
(setq time-stamp-format "%3a %3b %02d %02H:%02M:%02S %Z %:y")

タイムスタンプがないファイルには「M-x time-stamp」と打つことで入れら れる。その後は保存する毎に時刻が更新される。ただし、あらかじめ 「Time-stamp: < >」をファイルに書き込んでおく必要がある。

time-stamp.elは「Time-stamp: < >」が存在する行を第一行目から第八行目 までにあるものとする。それより下のほうにあるものは処理しない。ファイ ルのどこにあっても変更してほしいときは

(setq time-stamp-line-limit 1000)

とすることで 1000 行まで探してくれるようになる。

vimでタイムスタンプを打つ

meadowで作ったテキストファイルのタイムスタンプをvimで再編集しても更 新してくれるようにしたい。そこでvimの本家サイトからテキストファイル にタイムスタンプを自動挿入してくれるプラグインを探す。

次のページでキーワードを「timestamp」にすると関連プラグインが分かる。

検索結果に、そのものズバリの「timestamp.vim」と「timestamp」そして 「timstamp.vim」がある。「timestamp.vim」の作者はGautam Iyer、 「timestamp」の作者はPeng Du、そして「timstamp.vim」の作者はGuido Van Hoeckeとある。

最初に「timestamp.vim」(Gautam Iyer作)を見る。付属解説文書 (timestamp.txt)に次を見つける。

``This script is based on "timstamp.vim" originally written by Guido Van Hoecke.''

どうやら「timstamp.vim」(Guido Van Hoecke作)の改良型らしい。元祖と同 じような変数名などを使っている。元祖のファイル名は「timstamp.vim」と 8.3形式で何如にも古い感じがする。「timestamp.vim」(Gautam Iyer作)よ りスクリプトが短かい。慣れない長文の英文解説を読むのはしんどいので短 めの元祖「timstamp.vim」を試すことにする。

使い方はtimstamp.vimをpuluginディレクトリにコピーするだけでよい。~ /_vimrcへは何も書かなくてもよい。しかし、そのままではmeadowでの日付 ・時刻形式とは違うものになる。

meadowで保存すると~/.emacsで設定した形式となり、vimで保存するときは ~/_vimrcで設定した形式になる。そこで同じ形式にするための設定を~ /_vimrcに追加する。

" timstamp.vimの日付書式
let g:timstamp_2='\( *Time[- ]\?stamp:\).*$!\1 "%a %b %d %H:%M:%S %Z %Y"'

これを使ってvimでファイル保存すると日付・時刻がダブルクォートで囲ま れたものになる。meadowでは不等号とダブルクォートのどちらでもよい。ま たvimは不等号で囲まれた日付・時刻も受け付けるので支障はない。

htmlファイルにこの形式のタイムスタンプを入れる場合は日付・時刻を不等 号で囲んでいると不都合がある。不等号内をhtmlのタグと解釈してしまう。 存在しないhtmlのコマンドは無視されて日付・時刻が表示されない。

なお、日付・時刻の形式に使われる「%a」とか「%b」などは、meadowでも vimでも同じ文字を使う。これらはunix由来の表示形式のようで共通らしい。

同一ファイルをmeadowでvimで同時編集する

同じファイルをmeadowとvimの両方で開く。ソフトウェアによると他のアプ リケーションが使っていると警告してくる。そして編集禁止のリードオン リーでのみ開くことができるようになっている。

この二つのテキストエディタは他のアプリが使っていても警告はない。 meadowで編集後に保存したあとvimに切り替えるとvimの画面中央に読み込ん だ時点から変更されているとメッセージが出る。逆にvimで編集して保存し てからmeadowに切り替えてもメッセージは出ない。構わずに入力しようとキー ボードを叩くと、ファイルが変更されているメッセージがmeadow の最下行 のエコー領域に表示される。

meadowとvimのどちらも、ディスクからファイルを読み込んだ時点のものよ り現在のディスク上にあるファイルが新しい場合は警告してくる。vimのほ うが派手に警告してくる。

| | コメント (0) | トラックバック (0)

2009年8月12日 (水)

ココログに置いたテキストファイルが文字化けする

タグ付けしないテキストファイルをアップロードする

Time-stamp: "Fri Jul 17 14:03:47 JST 2009"

グーグル検索でヒットする記事のほとんどは、いわゆるホームページの体裁 の綺麗なページである。その中に時折シンプルなプレインテキストファイル のままのものがある。

インターネット上の検索エンジンは、いわゆるホームページの形式のページ だけを探すのではない。インターネット上に公開されているあらゆるファイ ルに含まれる文章に索引付けする。ワードプロセッサーで作ったファイルや pdf化したものも検索対象になる。

そのためテキストファイルのままで、未だhtmlのタグ付けしてないファイル もグーグル検索にはヒットする。下書きのつもりのテキストファイルであっ てもインターネット上に公開すれば必要な誰かの目に止まる。少くとも自分 のパソコンに死蔵するよりは世の中の役にたつ。

文字化けは「mojibake」で通じる

文字化けは英語ではなんというのだろうか。とりあえずwikipediaを見る。 いわゆるマルチバイト文字を必要としない英米語圏では文字化けが問題にな ることはない。行き掛かり上その方面の第一走者(リーダーというと同じ事 情を抱える国を引っ張るように聞こえる。たぶんそんな積もりはなく気がつ いたときには先頭に立っていたような気がする、ちょっと控え目)になった 日本語ローマ字表記の「mojibake」そのままで通じるらしい。

複数の単語を使って意訳するよりは、そのものズバリの一語のほうがよい。

ココログに置いたテキストファイルが文字化けする

ブラウザを使ってココログに投稿するかぎり文字化けの心配はない。ブラウ ザ上の作成画面への直接入力なら問題は起こらない。

前もってテキストエディタで作った文章をココログの作成画面にコピーアン ドペーストで貼り付けても問題が起きない(ようである。本人の気付かない トラブルはあるかもしれない)。

htmlのタグの入らないテキストファイルをココログのファイルマネージャー を使ってココログのサイトにアップロードする。そのテキストファイルにコ コログページからリンクを貼る。

ココログの本文からそのテキストファイルにリンクで移動してブラウザに直 接テキストファイルを表示する。このとき文字化けする。

さらにココログとは関係のないグーグル検索の結果からココログの中に置か れたテキストファイルへグーグルのページから飛んだ場合も文字化けする。

ココログへアップロードしたテキストファイルの文字コードはwindows標準 のshift_jis である。ブラウザでの文字化けはブラウザのエンコーディング 指定をshift_jisに変更すれば正常に表示される。

ココログのページからココログ内のテキストファイルにリンクする場合は、 リンク元のココログ本文ページに文字化けを予告すればよい。

グーグルからのリンクで文字化けすることには対応できない。ブラウザを使 う人がエンコーディングを変更してくれなければ読めない。それではせっか くの情報が役にたたない。

試行錯誤の結果、ココログのサイトにアップロードするテキストファイルの 文字コードをココログページ本文と同じutf-8にすればよいと分かる。

全面文字化けは性質がよい、タチの悪いのは一文字化けである

テキストファイルの文字コード変換は、色々な文字コードが読めるエディタ なら自由にできる。それでも時に失敗することがある。そこで文字コード変 換ツールを使う。

テキストファイル全体が文字化けで読めないのはむしろ性質がよい。タチの 悪いのは極々少数の文字、極端には特定の一文字だけが変換できない場合で ある。そういう文字が一度も使われてなければそのファイルに関しては正常 である。

テキストファイルの文字コード変換は不可逆とみたほうがよい。極端な言い 方をすれば、そのテキストファイルを作成したパソコンでなければ原作ど うりには表示できない。

文字コードに相当する文字の字形(フォント) が表示パソコンに存在しない とか、文字変換テーブルが双方向でないとかがあるらしい。

shift_jisの「~」がutf-8変換できない場合がある

文字コード変換ツールとして次の二つを使ってみた。

最新版のKanjiTranslator160.zip (50KB)で問題がある場合は、古い安定版 であるKanjiTranslator141.zip(29KB)をご使用くださいとある。私の windows meで最新版は動作しない。このツールはバックアップファイルを作 らない。
jme65.lzh(134KB)は、元ファイル名に「.bak」を付けたバックアップファイ ルを作る。

KanjiTranslatorでは不都合があった。KanjiTranslatorでshift_jisの「~」 をutf-8に変換すると「?」になる。

jmeでshift_jisの「~」をutf-8に変換するとちょっと幅狭く太字になる。 これをjmeでshift_jisに再変換すると「?」になる。

shift_jis全角の「~」や「-」はutf-8変換できず「?」になることがある らしい。

文字コード変換ツールとしてはjmeを使うことにする。ツール本体のサイズ が小さいKanjiTranslatorよりは、大き目のjmeのほうが詳細な変換テーブルを持っ ていて変換漏れのない仕事をしてくれそうな気がする。目方の軽い道具より 重いもののほうが信頼できそうに感じるのと同じ発想である。

普段はshift_jisのテキストファイルを編集して、ココログにアップロード するときにツールでutf-8に変換する。編集は常にshift_jisの元ファイルを 使う。

写真ではなく文字で記録したい

平成21年3月からウォーキングを始める。最初はひたすら歩く。とはいって も決まりきったコースを毎日こなすのは気が進まない。歩くことは二の次の 移動手段にしてしまい、今まで知らなかった近くの名所・史跡といったもの を訪ね歩くことにする。歩くには遠すぎる場所には自転車を使う。それも難 しいなら電車やバスも使う。現地の近くに着いたら歩く。

歩きで見つけた何かの案内板とか説明板を書き写すことを始める。写真を撮 るのではなくひたすら鉛筆でノートに書き取る。書き取りには時間が掛かる。 しかし書き写すときに黙読では見逃す何かに気付く。無駄な単純作業と切り 捨てられないものがある。

昔の人は教科書を書き写すことが勉強の最初であった。個人が一冊ずつを持 てないなら自分がコピー機になって複製するしかない。

帰宅後そのノートをパソコンを使ってテキストファイルにする。ホームペー ジの記事のようなhtmlのタグ付けはしない。度々加筆や訂正を繰り返すこと になるのでタグを入れると目障りになる。出来たらすぐにココログのページ にアップロードしてしまう。

タグ付けしてないことを未だ編集続行中の未完成記事のメッセージにする。 内容に間違いがあっても参考情報にすぎないと言い訳しよう。

未だ完成してないものも構わずにどんどんアップロードすることを徹底する。 インターネットを介して何処の誰でも見える場所に置いた自分のメモ書きを 自分自身もインターネットを通して読む。

アチャーッ間違えてる、と冷や汗をかくことが書き直しの励みになる。自分 のパソコン内に置いたファイルなら間違いを見付けても、マッ、ソノウチニ で終わっしまう。

残り時間は少ない

平成21年に60歳になった私は、人生の折り返し点からたぶん20年経っている。 残り20年だろう。そのうちのまともに動けるのは10年かもしれない。折り返 してからの今は二度目の成人といえる。

今のうちに、書き綴ったことを誰でもアクセスできる場所に早めに公開して いかなければ手遅れになる。見当外れであろうが間違っていようが発信して しまおう。

多少ピントが外れていても、まったく情報がないよりはましである。幾ら検 索しても引っ掛からないことほどにがっかりすることはない。

自分の発信した記事がインターネット検索にヒットすることはとても励みにな る。ひょっとしたら誰かの役にたっているかもしれない。

| | コメント (0) | トラックバック (0)

2009年8月 2日 (日)

バックアップには時間が掛かる(バックアップ失敗記録)

バックアップには時間が掛かる(バックアップ失敗記録)

Time-stamp: "Mon Jul 20 09:11:58 JST 2009"

データファイルのバックアップにはMOを使っている。バックアップツールと しては

を使う。現在はVer 1.8になる。

データファイルのバックアップには気が遠くなる程に時間が掛かる。とくに MOは遅いような気がする。もっとも色んなものを試したわけではないので比 較することはできない。どえらい時間が掛かるものであると分かるまでには 時間が掛かった。50MBくらいをMOにバックアップしようとする。バックアッ プツールBackupのメッセージ画面が止まっているのにMOへのアクセスが止ま らない。

よくみるとBackupツールのメッセージ画面でカーソルは点滅を繰り返してい る。最初それに気付かなくてパソコンが固まったのかと思う。他のことをやっ ているうちに画面が反応しなくなる。そこで慌ててあちこちといじくってい ると遂にあのブルー画面になる。システムがビジーにあるという。

どうしても反応しなくなったので止むなく電源切りする。こういう場合も放っ ておけば何とか終了するのだろうか。待ち切れないで電源ブツ切りする。

電源切りをやってはいけない。MOの中に変なファイル名で削除できないファ イルが出来てしまう。エクスプローラからも削除できないしMS-DOSプロンプ トからも削除できない。

ファイル名に半角カタカナが現われる。自分の作ったものには英数字8.3形 式のファイル名しか付けてない。それ以外も英数字のファイル名のはずである。 もちろんパソコン内をくまなく探せば日本語のファイル名のものもある。しか し、バックアップしようとするディレクトリに日本語ファイル名はない。

MOの中にアクセスできない領域ができたらしい。そのままにしておくのは気 持ち悪い。そこで正常なフォルダをパソコンのハードディスクに一時退避さ せてMOをフォーマットする。

ここでMOとハードディスクの間で何回もコピーする。最初はエクスプローラ を使ってディレクトリごとMOからハードディスクにコピーする。そのときあ るファイルに関してそのファイルが使われているのでコピーできないとメッ セージが出る。そのファイルが適応するアプリケーションで開いているなど はない。

どうしてそういうメッセージが出るのかが分からない。コンピュータウィル スでも居るのだろうかと心配になる。メッセージにはOKを押す以外の選択肢 はない。ボタンを押すとコピー作業は終わってしまう。

不安になりコピー元のMOのディレクトリサイズを見ると40MBくらいある。コ ピー先のハードディスク上の同名ディレクトリのサイズは20MBくらいしかな い。ファイル数が多すぎて全部がコピーされたかどうかの確認はできない。

そこでエクスプローラを使ってのコピーによるバックアップは止める。バッ クアップツールを使えば、もしファイルのコピーに失敗したとしてもログが 残る。それを見ればどのファイルでエラーしたかが分かる。エクスプローラ による手動作業では漏れなくコピーができたかどうかの確認ができない。十 個以上のファイルを目視で確認するのは辛い。

この作業でバックアップツールを何回も使う。その繰り返しでMOへのバック アップが驚くほどに時間が掛かることを思い知る。これを待ち切れなくて他 のことをやろうとするとパソコンが無反応になったりする。慌てていじりす ぎるとブルー画面になる。バックアップするときはバックアップツールが正 常に終了するまではパソコンに触らずにジッと待ったほうがよい。

とくに画面が無反応になったらそれ以上触らないことである。ブルー画面に なったら復旧できないかもしれない。windowsの画面が出ている状態なら無 反応でも待っておれば固まらずに済むようである。

バックアップ中はMOとハードディスクに絶え間なくアクセスが続く。文字通 りのビジー状態になる。windowsやアプリケーションソフトのインストール のような忙しい状態にある。ところが画面のメニューは出ているし他のこと ができる状態にある。どうしても不用意にいじってしまう。それがパソコン の過負荷になりビジー状態を招く。

一番の問題はパソコン自体が古いために能力が不足しているのかもしれない。 パソコンを過負荷にしないような使い方を心掛けるしかない。バックアップ の際はジックリ待つこと、そしてその間はキーボードやマウスを操作しない ようにしたい。

| | コメント (0) | トラックバック (0)

« 2009年7月 | トップページ | 2009年9月 »