2006-12-03

Emacs で Scheme の関数の説明を info から参照する

Emacs には info-lookup-symbol というコマンドが用意されていて、これを使うと、カーソル下の関数の解説を info で読むことができる。例えば、C のソース・ファイルを開いて、関数 strtod の上で M-x info-lookup-symbol してみる。すると、libc.info の「Parsing of Floats」というノードが開かれる。

info-lookup-symbol を使うには、まず、その言語の info が存在すること。そしてメジャー・モードと info の対応表が必要になる。Gauche という Scheme 処理系をインストールすると、プログラミング言語 Scheme の日本語 info マニュアルが手に入る。そこで、その Gauche info を Scheme モードから使う設定を紹介しませう。

なお、コマンド info-lookup-symbol は、Emacs-21 系では C-h TAB に、Emacs 22.* では C-h S にキーバインドされている。

Gauche info のインストール

次のコマンドを実行して、Gauche info がインストールされているかどうかを確かめやう。

  • C-h i m Gauche (ja) RET

これで、Gauche のマニュアルが開いたら、この節で読むことは何もない。次の節へお進みあれ。

Gauche のマニュアルが開かなかった? なら、root になって /usr/local/info/dir を開きませう。そして、ファイルの後ろの方に次の一行を追加する。保存するのを忘れないように。

* Gauche (ja): (gauche-refj.info).  An R5RS Scheme implementation.

Emacs を再起動して、もう一度上のコマンドを実行しませう。Gauche info は読める? 読めれば OK。読めないやうなら、それは貴方のシステムに Gauche が入っていない可能性が高い。次の記事を読んで、Gauche をインストールしませう。

インストール後に /usr/local/info/dir の編集をして、Gauche info を読めるやうにする。

Scheme モードで Gauche info を開く設定

Emacs に、Scheme モードから Gauche info を開くことを教えてやらなくてはならない。詳しい解説が下記リンク先にある。

ただ、上記ページの設定は少々マニアック。ぼくは .emacs に次のコードを追加している。

(eval-after-load "info-look"
  '(progn
     (info-lookup-add-help
      :topic 'symbol
      :mode 'scheme-mode
      :regexp "[^()`',\"\t\n]+"
      :ignore-case t
      :doc-spec '(("(gauche-refj.info)Index - 手続きと構文索引" nil
                   "^ -+ [^:]+: *" "[\n ]")
                  ("(gauche-refj.info)Index - モジュール索引" nil
                   "^ -+ [^:]+: *" "[\n ]")
                  ("(gauche-refj.info)Index - クラス索引" nil
                   "^ -+ [^:]+: *" "[\n ]")
                  ("(gauche-refj.info)Index - 変数索引" nil
                   "^ -+ [^:]+: *" "[\n ]"))
      :parse-rule "[^()`',\" \t\n]+"
      :other-modes nil)

     (info-lookup-add-help
      :mode 'inferior-scheme-mode
      :other-modes '(scheme-mode))
))

これで、Scheme の分からない関数があれば、すぐに Gauche の info をひける。Scheme 使いは、是非お試しあれ。便利。

2006-11-30

Amazon Search ガジェット - Amazon 用のアラート機能

Google Gadget - Amazon Search アマゾンサーチなる (Google Personalized Home 用の) ガジェットを紹介しませう。このガジェット、気になる商品名 (or キーワード) を入力しておくと、発売の 30 日前からお知らせしてくれる。いわば、アマゾン版の Google アラート。

スクリーン・ショットは「灼眼のシャナ」と「ゼロの使い魔」をキーワード登録したところ。シャナは何も引っかかってないけど、ゼロの使い魔は二冊ヒットしているね。12/22 にコミックの一巻が発表されるらしい。見ての通り、「発売前」の商品の他に、「発売後」の商品も 30 日間表示してくれる。発売日に買わなくても、30 日はリマインドしてくれるというわけ。

設定からは、「発売前」と「発売後」の日数もカスタマイズできる。設定可能な日数は、0, 10, 20, 30, 60, 90, 120, 360, inf (無限) の選択式。また、クエリリストの日付部分をクリックすることで、個別に日数の変更も可能。AJAX してて、いい感じ。

「キーワード」と「ジャンル」の追加は入力フォームから。ジャンルは、和書・クラシック・DVD・エレクトロニクス・洋書・ホビー・ポピュラー音楽・ソフトウェア・おもちゃ・ゲームが用意されている。キーワードとジャンルも、クエリリストで該当部分をクリックして再編集可能。

インストール及び公式解説は以下のページから。

新商品のチェックに是非。

Google Analytics コードについて

ところで、公式ページを見て頂くと分かることだけど、アマゾンサーチ・ガジェットには Google Analytics のトラッキング・コードが挿入されている。Google Analytics で集められたデータは、ガジェットの改善のために利用されるとある。

Google Analytics に、個人を特定する機能はなかったと思うけど、Google Analytics で情報を集められたくない方は、使わない方がよいでせう。

ガジェットに Google Analytics のコードを埋め込む件に関しては、hogematomo さん (アマゾンサーチの作者さん) と何度かメールで遣り取りをした。そして知ったのは、いくつかのガジェットが、既に Google Analytics の Urchin コードを入れているということ (ref. Google Analytics in Gadget)。

このことが気にかかる方は、是非以下のページを訪れて欲しい。ぼくと hogematomo さんの遣り取りのまとめがある。ただし、Urchin コード挿入の是非について結論は出ていない。皆さんと一緒に (コメント・トラックバックで) 有意議な議論ができると嬉しい。

2006-11-29

Google Calendar と Remember the Milk の統合

RTM in Google CalendarRemember the Milk から、Google Calendar に Remember the Milk のタスクを表示する機能が公開された。

スクリーン・ショットを見て分かる通り、Google Calendar の日付部分にチェック印が追加される。これをクリックすると、その日のタスクがポップアップ表示されるというわけ。更に、ポップアップしたウィンドウから、タスクの追加・編集もできる。ここら辺の操作感は、Google Gadget と同じ。

以前、このブログで紹介した RTM の webcal: 情報を Google Calendar に登録する方法は、RTM 側のタスク公開設定をプライベートから「公開」に変更する必要があり、セキュリティー面で問題があった。今回の方法は、そういったことをしなくていいので安心。ただし、タスクの一覧性は少し劣る。

RTM のタスクを Google Calendar に追加する方法

ヘルプ・ページに、RTM のタスクを Google Calendar に追加する方法の説明がある。

その説明に従えば、すぐにインストールできる。説明は英語なので、一応日本語に訳しておきませう。

  1. 下の「Google Calendar」ボタンを押す。
    Add to Google Calendar
  2. 「『Remember the Milk』というカレンダーを追加しますか?」と聞かれるので、「Yes, add this calendar」をクリックする。
  3. Google Calendar の「Other Calendars」に「Remember The Milk」カレンダーが追加されているのを確認して下さい。「Remember the Milk」カレンダーにチェックが入っていなければ、チェックを入れて下さい。
  4. 日付の左横にあるチェック・ボタンをクリックして、タスクが表示されるか試してみましょう。

Cui と Gui

リーダーズ+プラス V2 で「Cui」を引くと、こんな説明が載ってる。

キュイ César (Antonovich) Cui (1835-1918)

《ロシアの軍事技術者・作曲家; 築城の専門家であったが退役; ロシア国民楽派五人組の一人; ピアノ曲・歌曲・オペラなどを作曲するかたわら音楽評論を行なった; オペラ William Ratcliff (1861-68) など》.

あのラフマニノフの交響曲第一番を酷評した批評家の一人 (ラフマニノフは、酷評が応えて神経衰弱になっちゃった)。ロシア国民楽派五人組の残り四人は、バラキレフ、ムソルグスキー、ボロディン、リムスキー=コルサコフ。五人組の中だと、一番目立たない存在かなぁ ^^;

さて、同じく「Gui」を引くとこんな説明がある。

グイ Vittorio Gui (1885-1975)

《イタリアの指揮者・作曲家》.

こちらも作曲家。1885 年生まれというと、ベルクやクレンペラーと同い歳。フルトヴェングラーより一歳年上。う〜ん、彼の名前を聞いたことがない :p

CUI や GUI というと、コンピューターの世界では、Character/Graphical User Interface を指すけれど、音楽の世界にも Cui と Gui がいる (少くともリーダーズに載るくらいには有名な人達が) とは知らなかった。驚き。

Google Reader アップデートの復活

2006-11-24 日に追加され、IE6 上でのバグが見つかったことから翌日 (同日中?) に元に戻された Google Reader のアップデートが、本日復活した。

アップデート内容を改めて書くと以下の通り。

  • 「Add to Folder」ボタン (bookmarklet, Firefox 2.0 subscription, Add to Google 用)
  • 「Feed actions...」メニュ (フィード選択時)
  • IE7 の表示バグの修正
  • IE6 の表示バグの修正 (new!)
  • OPML インポートでの不正文字の扱いの緩和
  • 設定ページのフィルターの複数キーワード対応
  • 設定ページの描画スピード向上

アップデートの内容の詳細については、前エントリーをどうぞ。

なお、今回のアップデートでは、unsubscribe (フィード登録の解除) のバグ修正は含まれていない。また、リスト表示のアップデートも含まれなかった。残念。

2006-11-28

miniSD カード ADTEC AD-MSDP512 を買った

携帯電話で撮った写真を、PC に持っていくのにメモリー・カードが欲しい。というわけで、お昼がてら近くのお店に足を伸ばした。

ぼくが持ってる機種は SH902i。PC には詳しくとも、携帯にはからっきしダメなぼく。どんなメモリー・カードが対応しているのかも知らなかったりする。そこは気負いなく、自分の携帯を持って店員さんに

「これに対応してるメモリー・カードが欲しいんですけど」

すると店員さんは、miniSD カードが対応してると教えてくれた。後で、携帯電話の側面を見たら、挿し込み口に「miniSD」って書いてあった。ちょっと恥ずかしかったけど、それはいい。

売ってたのは、256 MB、512 MB、1 GB の三種。だけど、512 MB の品がセールになってて、一番安いとのこと。お値段 1980 円。ADTEC という会社の miniSD カード。ちなみに、256 MB のものは 2000 円以上した。

AD-MSDP512 は SD カードアダプターも付属している。

ぼくの PC には、11-in-1 カードリーダーライターが付属している。これが miniSD カードに対応しているのか (店頭で miniSD カードを買おうとした時には) 分からなかったので、SD カード対応なら安心だよね、とも考えながら AD-MSDP512 を購入。

携帯電話に miniSD カードを取り付ける

miniSD カードの取り付けは簡単。携帯の側面にある「miniSD」のカバーを外して、ラベル面を上にして挿し込むだけ。だと思ってたのだけど、家に帰って説明書を読んだら、「FOMA 端末の電源を切ってから...」と書いてあった ^^;。ありゃりゃ。電源切らずに miniSD カードを挿しちゃったよ。壊れなくって良かった。

というわけで、皆さん、miniSD カードの抜き挿しの前に、携帯の電源は切りませう。

あとがき

今までぼくは、携帯電話で撮った写真を Flickr にメール添付して PC 側に取り込んでた。ただ、それだと気になるのがパケット料金。ぼくは定額割引は使ってないから、メールの数量分だけお金を撮られることになる。自然、写真を撮る回数も減るし、画像サイズも小さなままだった。

miniSD カードには 512 MB もの容量がある。もう数も画像サイズも気にしなくて撮れる。そう思うと、写真を撮るのが楽しみになってくる。

Emacs で快適に Lisp / Scheme ソースを編集する

Emacs には EmacsLisp のインタープリターが内蔵されている (正確には EmacsLisp の処理系の上に Emacs というエディターが構築されてる) ので、EmacsLisp のソースを編集しながら評価が可能。EmacsLisp 程強力ではないけれど、同じようことを Common Lisp (あるいは Scheme) でもやれる。

※以下の説明は、Emacs 22 用のもの。Emacs 21 で同じことが出来るかは確かめてない。

Common Lisp の場合

まず、Emacs から呼び出す Common Lisp の処理系を .emacs で設定する。clisp を使うなら、こんな感じ。

(setq inferior-lisp-program "clisp")

Lisp のソース・ファイルを開いたら、次のコマンドを実行。

M-x run-lisp

すると、shell モードの Lisp バージョンが起動する。こんな感じ。

  i i i i i i i       ooooo    o        ooooooo   ooooo   ooooo
  I I I I I I I      8     8   8           8     8     o  8    8
  I  \ `+' /  I      8         8           8     8        8    8
   \  `-+-'  /       8         8           8      ooooo   8oooo
    `-__|__-'        8         8           8           8  8
        |            8     o   8           8     o     8  8
  ------+------       ooooo    8oooooo  ooo8ooo   ooooo   8

Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
Copyright (c) Bruno Haible, Sam Steingold 1999-2000
Copyright (c) Sam Steingold, Bruno Haible 2001-2004


[1]> 

これを inferior lisp モードと呼ぶらしい。ここでは、簡便に lisp shell と呼ぼう。

ソース・ファイルを編集して、括弧の後ろで C-x C-e すると、直前の S 式が lisp shell に送られる。例えば、

(reverse '(3 2 1))-!-

上のコードをソース・ファイルに書いて、-!- の位置で C-x C-e してみやう。すると、lisp shell で上記 S 式が評価され、その結果が表示される。

[1]> (1 2 3)
[2]> 

数引数を付けると (C-u C-x C-e)、C-x C-e 後に lisp shell に switch-buffer する。

ちなみに、M-C-x は、Emacs Lisp mode と同じように、トップレベルの S 式を lisp shell に送る。リージョンの実行は、C-c C-r

Scheme の場合

Common Lisp の場合とほぼ同じ。相違点だけ書いておきませう。

Scheme の処理系は、以下のやうに設定する (下の例は Gauche を使う場合)。

(setq scheme-program-name "gosh -i")

M-x run-lisp の代わりに、次のコマンドを実行する。

M-x run-scheme

後は、Scheme のソースを書きながら、C-x C-e, M-C-x, C-c C-r で楽しい Scheme life をどうぞ。

追記: Scheme と Emacs の連携については、次のページも参考になる。

Gauche CVS のインストール

プログラミング言語 Scheme の処理系の一つ、Gauche の CVS 版をインストールした。少々、躓いたので後々のためにメモ。

参考サイトは以下。

CVS 版の取得

$ cvs -z3 -d:pserver:anonymous@gauche.cvs.sourceforge.net:/cvsroot/gauche co Gauche

コンパイルとインストール

CVS 版には、configure が用意されてない。configure の作成方法は、Gauche/HACKING に書かれている。

手順だけ書くとこんな感じ。

$ ./DIST gen
$ gauche-config --reconfigure | sh
$ make
$ make check
# make install

コマンド gauche-config は、前回インストールした gauche と同じコンパイル・オプションを取って来て、configure を実行する。もちろん、gauche が既にインストールされてないといけない。tar ball から gauche のバージョン・アップをする時に使う。

新規インストールの場合は gauche-config に替えて (素直に) configure を実行すればいい (と思う)。

2006-11-27

Google Browser Sync で PIN 入力に失敗した場合のペナルティー

新規購入した PCfirefox を導入。他の環境で使ってる Firefox とパスワード、クッキー etc... を同期させるために、Google Browser Sync を一番最初にインストールした。

Google Browser Sync をインストールすると、初期起動の時に一度だけ PIN の入力を求められる。PIN は Personal (Private) Identification Number の略。本人確認のための一種のパスワード。Browser Sync はプライベートなデータを扱うから、他人のなりすましを防ぐために PIN 入力が必要なんでせう。

さて、その PIN 入力で、ぼくは間違ったパスワードを入力してしまった。他の所で使ってるパスワードを、Google Browser Sync の PIN だと思い込んで、何度も入力しまくった。他の PC の Firefox から PIN を確認して初めて、間違ってた PIN を入力していることに気付いた次第。

PIN 誤入力へのペナルティー

ここからが本題。何度も PIN の入力に失敗すると、Google Browser Sync は「Firefox をオフラインにして一日経ってからもう一度トライしてくれ」というメッセージを表示するようになる。このメッセージが表示されるようになると、例え正しい PIN を入力しても受け付けてくれない。なりすましを実行しようとする人への、ペナルティーなんでせう。

更に! 警告に従わず Firefox をオンラインで使い続けていたら、「一日経ってから再トライ」が「一週間経ってから再トライ」になってしまった!

実際問題、Firefox を一日中オフラインにするのは苦行に近い。ここは「Firefox をオフライン」にするのではなく、「ツール→アドオン」から Google Browser Sync を「無効」にする手が一番手っとり早いと思う。(Google Browser Sync のアンインストールも一つの手だけど、後で再インストールするのも手間でせう? それに Google Browser Sync を再インストールした所で、「再トライ」の警告は消えてくれない)

Google 側にしても、「Firefox をオフラインにしろ」なんて誰もやりたがらない警告なぞ出さずには、「Google Browser Sync を無効にしろ」と書いてくれればいいのに。おかげで、これから一週間 Google Browser Sync が使えない (;_;)。

(2006-12-03) PIN 入力が通って、Google Browser Sync が使えるようになった。一週間ぶり!

新規 PC 購入記 その 4 - PC 到着

の続き。

2006-11-26 は雨だった。20 時 21 分。待望の新パソコンが到着。クロネコさんが届けてくれた。雨の中ありがとう。

Faith 箱

早速、箱を開けてみる。

Faith 箱の中身

保証書が一番上に。そしてキーボード、マウス、マザーボードの箱が続く。マザーボードの箱の中に、マザーボード用と Faith コンピューターのマニュアル一式及び Windows XP Home Edition の CD-ROM etc... が入っている。5 年以上前に Faith で買い物をした時も、同じ梱包だったと思う。そして最後に PC 本体の箱。

Faith PC の箱

箱から取り出すと、黒い筐体が現れた。ミドル・サイズよりかは少し小さめ。だけど、スリム・サイズよりは高くて厚い。マイクロ・サイズと呼ぶのかな。前面に USB ポートがあるのが嬉しい。

Faith PC 前面 Faith PC 後面

電源、ディスプレー、LAN、スピーカー、マイク、キーボード、マウス。以上の配線を行なって、PC の電源を入れる。

何もせずとも、Windows XP Home Edition が起ち上がった。OS のインストールは必要ないのか ^^; マザーボードのデバイス・ドライバーも、DVD 鑑賞用の Cyberlink も最初から入ってる。手間がないっていえば、そうだけど、もう少し自分でいじりたかったなぁ。

パーティッションを見たら、C ドライブが一つしかない。せめて D ドライブを一つ作りたいな。Windows 95 系なら、起動ディスクから fdisk で一発なのだけど、Win XP はどうなんだろ。fdisk で NTFS のフォーマットは出来なさそうだし... ウーン。前途多難。

旧マシンから、Linux の入った HDD も移植したいし、やりたい事は山積み。

でも、とりあえず、新規マシン購入記はこのエントリーで打ち止めにしやう。続きの設定は、エントリー名を変えて書くので、よろしく。