Emacs

Emacs23へ完全移行

長らくBlog記事を書いてなかったが、前の記事は春先に書いた物で気がつけばもうすぐ紅葉。今年はいろんなことに翻弄された結果、コンスタントに記事を書くと言う状況がなかなか作れなかった。(やる気がいろいろ抜けたとも言うが・・・) 小難しいことを考えても仕方ないので、少しずつ記事を書いていこうと思う。
大学時代からUnix文化に接して暮らしてきたせいか、基本的にGNU Emacsをメインのメールやプログラムを書く環境に用いている。そのためWindowsでもWindows版 GNU Emacsの1つであるMeadowを使ってきた。Meadow自体は日本語の特殊環境を踏まえていることもあって、Windowsの上では非常に使いやすいのだが、GNU Emacs 21.4から派生したMeadow 2.10から長らくメジャーバージョンアップもされず、他の環境で用いているバージョンとの乖離が大きくなってしまって、だんだんと疎遠になってしまった。最近Windowsでもちょっとしたプログラム書きとしてのRubyのスクリプトを書くにも、関数型言語のお勉強としてSchemeの実装の一つGaucheHaskell Plathomeが使いやすくなってきたので、急にEmacsの需要が出てきたというわけである。

サーバ環境アップデート

先週は秋の大型連休だったのですが、なかなか時間が取れていなかったので、1年半ぶりにサーバ環境をアップデートしました。(とはいうものの、FreeBSD自身のベースのユーザーランドは手をつけていないけど。こっちはあまり気合いがいらないので追々に。)

まず長らく使用してきたperl-5.8系(5.8.8)から5.10系にアップデート。さすがにもうPerl5系はここいらでしばらくでかいバージョンアップはなかろうという判断。一応MTOSを動かせるようにライブラリをインストール。残った問題点はImage::MagickとCrypt::DSAのインストールがうまくいっていないこと。どちらもどこが問題なのか突き詰めている間に連休が終わってしまったので放置。Image::Magickは写真なのでサムネイルやCAPTCHAの画像生成を行うために使っていたが、サムネイル作成はGDにお任せにすることにして、CAPTCHAに関してはreCAPTCHAで代用することとした。ただしれCAPTCHAの字が読みにくい。私人間なんですが。
最近あまり使っていないがrubyは1.8系と1.9系の一応最新版に追従しておいた、入れただけで放置。Pythonは最近始めてみたので2.6.2を導入。
今回のアップデートで一番大きかったのはEmacs22からEmacs23への変更か。僕はもう10年くらい前からEmacs+SEMI(APEL/FLIM/SEMI)+Wanderlustという環境でメールの読み書きをしているので、エディタのEmacsのバージョンアップはメール読み書き環境の大幅な変化を引き起こす。今回のアップデートでUTF-8周りの文字化けメールがほぼ解決しそうである。まあEvolutionのような訳の分からない思想(iso-2022-jp なヘッダーの符号化で q-enc 使って、本文はUTF-8とか)で送ってくるのはヘッダも本文も読めなくなって大きな問題。まあ読めないメールは読み飛ばせばいいのであるが、読めない方が悪いとかいう強者の論理を持ってくるけしからん人がいるので、Emacs23には期待していたのだ。効果は予想以上に大きい。おおむね読めるようになった物の、やはりCJKな人たちがこれまでの歴史を踏まえて作ってきたMUAを使いましょうよと声を大にして言いたい。あと何も考えなくてもUTF-8が使えるようになったのは大きいな。
あとはApacheの最新版への追従とかそんなところ。あとsshdの設定も変更してみた。以前よりは厳しめの設定となっているはずである。(だいぶんGroupとかアクセス先の制限とかかけてみたし。)
あとMovableTypeの設定を変更してみた。これまではユーザー登録をできなくしていたのだが、たぶんめんどくさい向きもあると思うので、ユーザー登録をできるようにしてみた。新規ユーザーはコメントのみ投稿可能。あとCrypt::SSLeayをインストールしたので、いろいろなOpenIDをつかった認証も行けるはずであるが、これらはテストが足りないので、使ってみてください。いちおうmixi OpenIDとかは使えそうではあるけど。

2005年11月22日 火曜日

なんでもかんでもExcel症候群

何でもかんでもPowerPoint症候群の弊害を日記で書いたのだが、それよりも世の中に広く広まっている病的な物と言えば、_なんでもかんでもExcel症候群_であろう。とにかく通常の表だけに飽きたらず、提出書類から報告書まで_何でもかんでもExcel_なのである。つまり「何でもかんでもExcel症候群」とはExcelだけですべての仕事が完結してしまう恐ろしい病気なのだ。
その病巣の由来を簡単に予想するとすれば、子供の頃に升目の入ったノートで漢字の書き取りをやらされ(つまりカーニングとかに無頓着になる)、読書感想文などの類は原稿用紙で書かされ、漢字は少ない文字数で情報量を詰め込めることからすっきりとした表が書きやすく、何でもかんでも_表にしないと気が済まない_という日本人の悲しい習性に由来する物であろうと思うのだ。
まぁUnixでEmacsしか使わないというのと似たような話ではあるのだが、典型的なEmacsユーザーが扱うのは汎用的なテキストファイルであり、Emacs LISPでがんがんプログラムを書く(設定ですらLISPを書かねばならないので、多少は誰でも書く物だ)人が多い用に思われる。Excelの場合は、XLS形式という特殊なフォーマット(最近のはXMLなのか?)を用い、適当なワークシート関数などを表層的に使いこなしている人が多く、Excelの基本技とも言えるピボットテーブルとかソルバーを使いこなしている人がどの程度いるかと問えば、結構怪しい物だ。
まぁ会社で働いているとこういう病的な世界と常に隣り合わせであり、いつも精神汚染を受けているのであるが、これを前向きに楽しむにはどうすればいいか? ということに焦点を絞り込んで生活しないとやってられないと言うことになるであろうか。
そんなわけでExcelをちゃんと使いこなすにはVBAで遊びまくればいいのであるが、テキストファイルとのつきあいもやめられない。Unixな環境に一度でも触れてしまうと、VBAのお気軽さを楽しんでいても感じる最大の問題点は_正規表現が使えない_と言うところがなやましい。これまで正規表現(とハッシュ)を使うためにVBAからだと駄目だと思い、Active PerlとかActive Rubyとか非VBAでCOMオブジェクトをさわれる言語を選択していたのであるが、書いたプログラムを使ってもらうのに_わざわざPerlだのRubyだのをインストールしてもらわねばならない_という痛い問題があった。Windowsで全然閉じていないのである。Mac OSXみたいにPerlとかRubyがインストールされていればこんなことは考えなくて良いのだが、PerlやRubyを使うのは_Windows的なやり方ではないのである_と言う結論に落ち着いた。
Windows的にどうすればいいのかと言う話なのだが、結局のところ現在のほぼすべてのオフィスにあるWindows環境で前提として良さそうな物は、Internet Explorer 6 SP2とExcelであろうと言うことになる。いろいろ調べているとIE5以降だと、WIndows Scripting Hostが使える。_まてよWSHにはたしか正規表現オブジェクトがあったぞ_と思い出して、さらにCOMで呼び出せるじゃんと言うことを思い出したので、一気にこの方面の悩みが解消した。要はWSHの正規表現オブジェクトをVBAのオブジェクトにしてしまえばいいのである。なんてこったい。こんなので数年悩んでたよ。とりあえず、あるディレクトリにある複数のファイルを選択して、そのすべてのファイルに、入力したパターンマッチをして置換を行うVBAプログラムを書いてみよう。

2005年04月15日 金曜日

mkdiary用のAmazon書影表示のためのスクリプト

うちの日記用にAmazon書影表示のためのスクリプトを表示させるフィルタを書いてみた。ざっくりSOAP4Rの例題通り。
内容は[ASIN:0123456789]というパターンがあると、AmazonのASIN検索を行って、書影イメージと著者名(ある場合のみ)と書名に置き換えてくれるというものです。(フィルタ動作するところまでしか試してないけど。)たとえばこんな感じ。
[asin:4906391702]
という文字列を

<div class="amazon">
  <a href="http://www.amazon.co.jp/exec/obidos/ASIN/4906391702/ref=nosim/XXXXXXXXXX-XX/">
    <img src="http://images-jp.amazon.com/images/P/4906391702.09.MZZZZZZZ.jpg" alt="やさしいEmacs‐Lisp講座" title="やさしいEmacs‐Lisp講座">
  </a><br>
  広瀬 雄二 / <a href="http://www.amazon.co.jp/exec/obidos/ASIN/4906391702/ref=nosim/XXXXXXXXXX-XX">やさしいEmacs‐Lisp講座</a>
</div>

と変換する。絵を右に寄せたり、字を変えたりって言うのはclass指定したのでCSSでなんとかなるかなと思っている。(ソースいじってもいいですけど。)
依存するrubyパッケージは、SOAPを用いて通信を行う(クエリーを出す)のでSOAP4Rパッケージと、通信自身がUTF-8で行われるのでuconvパッケージに依存。1.8.1までKconvでUnicode関連の処理ができないこととこのページを書いているサーバにインストールされているnkfが古いので、こういうことになっています。そのうち書き換えるか…多分ruby-1.8系ならSOAP4RだけインストールすればOK。ruby-1.6系にインストールするのは値と大変。僕はもう使ってないので自分で調べてください。
uconvとkconvを併用している理由は、rubyのiconvパッケージのインストールに失敗していることと、うちの日記はISO 2022-JPであるためuconvとkconvを併用せざる得ないため。(SOAP4Rを使ったやりとりはUTF-8だし)しています。なんか大いなる無駄な気がしますが、nkfのラッパーのkconvとかnkfだとUTF-8が使えないし、uconvはEUC−JPとCP932(WindowsのShift-JIS亜種)とUCS-4とUTF-16とUTF-8しか使えない。微妙にEUC-JPしかかぶらないし…
使用上の注意ですが、これを使うにはAmazonのアソシエイト会員(たぶん必須じゃない)とデベロッパー登録をする必要があるので、注意してください。

2005年04月14日 木曜日

今日は1日中XML/HTML周りの調査

サイト全体の見直しを考えていて、これまで積んできた日記を中心とするデータの再利用を行うため、XMLやXHTML周りの調査など。うちの日記は、僕が書く際になるべくHTML4 Strictになるように書いているので、扱いやすいデータだと思うのですが、任意に何個かのファイルに対してHTML Tidyをかけてみた。割とすんなりとXHTML1.0 Strictに変換できることが分かったので、これで処理してみることにする。ざっくりと使えそうなTidyの設定ファイルは以下のようなもの。

2005年03月10日 木曜日

Xming

Win32の上で動くXサーバ。Cygwinに依存しないWin32ネイティブなもの。こう言うものを待っていた… さくっとインストールできて、タスクトレイに常駐させてみる。ssh2(putty)経由でEmacsを使ってみたが、Windowsの上でコピーしたものをペーストできない… できないのかなあ。ドキュメントを眺めるしか無いか。それにしても僕の環境では実用的。結構嬉しいかも。

2004年10月19日 火曜日

うわああああぁ

今日会社帰りに何気なくいつも立ち寄る本屋さんのPC関連書棚を見ていたら… こないだから我慢しているThe Art of Computer Programming Volume 2を発見。(今後うちの日記では「緑の本」と言うことにする。) 実は1巻の「赤い本」も我慢しているのだが、気がついたら2冊とも売ってるし、ちょっとお高いのでなかなか買えないんですよ…
さすがにもうモンテカルロとか数値計算をやってないので、特に2巻のメインとも言える「乱数」は読まなくても良いかと思うのだけど、赤い本の「情報構造」は読むべきだなということと、あと長らく翻訳が出なかった3巻のソートは興味深いなぁと思っているので、ちょっと楽しみ。まぁ_ボケ防止のための頭の体操に非常に効果的だ_と思うし、パラパラめくって面白いので、日曜日に立ち寄った新宿の紀伊國屋書店で_一気に2冊買ってしまえ!!!_と思って、かなり買おうかなという勢いでしたが、12月の某氏の結婚式に行けなくなると一大事なので、我慢していたのに、これから毎日が誘惑の日々です。(笑)
あとKnuth先生のこの本と言えば、アセンブラ言語に相当するMIXなわけだけども、いろいろ処理系はあるのね。

2004年09月16日 木曜日

今日は1日中Wordで文書書き

期末も近いのでたらたら報告書書き。ということで、しばらく使ってなかったWordの使い方などを再構成中。まぁWordはシステマティックに使っていたので、何年も使っていなくても人が知らない機能はサクサク出てくるんですが、メニューの配置がだいぶん変わっていてかなり手間取る。僕が使い込んでいたのはWord1.2とWord6.0までで、そのあとは文書書きはLaTeX。会社に入ってからはExcelで文書書きを強制されていたので会社ではExcel、家ではテキストしか用事がないからEmacsで編集というスタイルに落ち着いているわけだが…
数時間格闘して、とりあえず図表番号の付け方、クロスリファレンスの張り方を思い出す。あとはがんがん書くだけだ。ただある程度書いて報告書形式のスタイルを適用しようと思ったら… 全然インストールされてないじゃん! せめて基本的なスタイル集・オブジェクト編集ツール(数式エディタとかExcelの何個かのアドイン)・VBAのヘルプがインストールされていないと、まるでお仕事にならないんですけど!
まぁUnix系な人やWordを全然使いこなしていない人には、MS-WordがEmacsの次に好きな文書書きツールであるって言うと、_気でも狂ったんじゃないの?_とか言われそうだが、使い勝手の良いアウトライン・エディタって、身近にあるのはEmacsとWordしかない。まぁ僕は基本的にはアウトラインモードで項目をメモ状に書いて、前後関係を考えて、おおざっぱな文書構造を書き連ねて、詳細な段落を書くという非常にトップダウンな文章の書き方をするので、アウトラインエディタが必要なんです。

2004年04月14日 水曜日

さよなら、Canna

もう10年位使っているのだが、Linux/BSDの上での日本語入力環境のうち変換エンジンはごく初期をのぞいてCannaである。実はあまりまじめに使い方を学んでいる訳ではないので、微妙に使いにくいと思うことが多い。例えばいま打っているような英単語を含む文章をの場合どうやったらサクサク入力できるか知らない。Frontend次第と言うのは分かっているのだが、あまりにころころ変えているので、調べる気力はすっかり失せているのである。
Cannnaの場合はFrontendの選択肢が多いせいもあって、なんとなくころころ変えていて落ち着かないと言うのもあって、なかなか使い方を覚えられないのである。Emacs21にしたときに、日本語の入力にいったん突き当たっていて、どうしたものか悩んだ挙げ句TCP/IP経由で使えるTamagoを使うことにしたのであるが、これってWnnを使うためのライブラリだと思うので、何を使っているのやらわからなくなってしまったのである。なんとなく入力できるのは、はじめてUnixを触ったときはWnnだったため、なんとなくWnnの使い方を知っているせいなのである。
高々日本語入力のためにポートを開けるのも、なんだか変な話であるのは違いないので、この際進化がほぼ止めっているCannaとおさらばして、変換エンジンにAnthy、入力システムにanthy-elを使うこととして全面的に切替えることとした。
若干使い慣れていないせいもあるが、なかなか感触がよさそうなので、これを機にまじめに使い方を学んでちゃんと使えるようにしておきたい。

2003年12月06日 土曜日

う〜む、恐るべし

今日Googleで自分のページを検索すると、まぁ予想外のところでリンクされているわなぁ。アクセス解析とかしてないからなぁ。予想外のところでは、XML関連のツールの使い方、特にFOPのインストールの仕方_あたりにリンクが貼ってあったり。(あんなページでも_需要あるのか!) まぁ確かに日本語のソース少ないからなぁ。PSGMLとかもまとめると良いかもしれない。(こないだ.emacsから設定を消してしまったが…)
アンテナなるものにも微妙に捕捉されているようだ。もともと動的な日記生成をしていないので、アンテナに登録されにくいのかなと思っていたのだが、その年のインデックスにリンク貼ればいいのか。とりあえず検索性をあげるために日記のタイトルをテンプレートに入れてみました。さすがに「Diary of 2003」だと検索し辛いので。

しまったぁ!じゃないですか。

なにげにテレビを付けてBS-Hi(NHK)を見ると、アバドがマーラーの交響曲第2番「復活」を振っているじゃないですか。しかも第5楽章の最高潮のこんな歌詞の場面。