恥ずかしながら...

shiroさんのSDDには負けるけど、VMWareにウブンツ10.04を入れてみた。今度のは長期 サポート保障版らしいんで、これが出るのを待っていたんだ。

で、入れたのは良いんだが、gdmからのpassword入力を受け付けず。そんなら、sshで入れば いいんかと思ったら。sshdはデフォで入っていないらしく、応答せず。インストールを失敗 してるんかと思って、もう一度インストールをやり直してみたものの結果は同じ。 以前、悪口を書いたから嫌われちゃったかな? それならそれで、凄い事だけど。

ウブンツ応援団が出現してる所に行ってみたよ。そしたら VMwareのキーボードアサイン がおかしいから修正しれ なんてのが出ていた。同じような話がopensolarisにもあったようで、 大騒ぎになってたな。何処も一緒でほっとしましただ。そう言えば、opensolarisの新しいの 何時って、痺れをきらせている人がいたな。5月中には出したいねぇ、て、中の人がつぶや いていたような。。。

ウブンツに何入れる? emacs、openjdk-6-jdk、ant、maven2ぐらいをまず入れた。 他には、r-base、gnuplot、rubyぐらいかな。ccの環境がちゃんと使える事の確認を込めて 自前コンパイルでGaucheも入れた。普通にrubyを入れると、1.8.7が入るのね。そうそう、pdも入れたな。 取り合えず、このぐらい入っていればいいかな。

パッケージ名が分からんとどうしようもないけど、まあコマンド名を叩けば、教えて貰える って技を発見したんで楽ちんではあるな。

sakae@ubuntu:~$ git -v
The program 'git' is currently not installed.  You can install it by typing:
sudo apt-get install git-core

こういう技が使えない(例えば、日本語のIMEなんかは)ソフトはどうやって入れれば いいんだろう? まあ、無理してウブンツの上で日本語する必要も(今のところ)ない ので、放置しておこう。

日が経つにつれてTipsが出てくるなあ。実はおいらもどうしようと考え中の問題を 呟いているのを発見。

Ubuntu で Emacs 起動時にウィンドウが最大化されてしまう問題は、 ~/.Xresources に Emacs.Font: TakaoExGothic-10 とかって書いておくといいらしい。

放置と言えば、ウブンツにデフォで入っている、openoffice。とうとうオラクルのロゴが 入ったね。まあ、使う事はないんで。(しつこいけど、Webと日本語と印刷は、Window7でいいじゃん。 要は使い分けすればいいて事)

Kernel/VM

前回CPが悪いって事で行かなかった、IIJの大会議室での催し。今回は表記のようなグッと くるタイトルで開かれとの事だったんで、リベンジ(何のこっちゃい!)を兼ねて参加した。

ビールとおつまみの差し入れがあったりで、大感謝ですよ。IIJさん、ありがとう! また次回も宜しく。って、おい。

肝心の演題は、 Kernel/VMを参照するとして、 おいら的にぐっと来たのは、 初心者がパッと試せる組み込みos=kozos と、rootstock in ubuntuかな。 後、これからOSを書いちゃう僧と言う小僧もとえ、高校生君。下のレイヤーって面白い象。 そして、ゆくゆくは、 Linux カーネルのコンテキストスイッチ処理を読み解く を目指してください。期待してます。

先ほど、上のkozosのページを基点にうろうろしてたら、 坂井弘亮さんのページに行き着いた。 おいら坂井さんの本を一冊持ってるよ。『C言語入門書の次に読む本』こんな事なら、本を 持って行ってサインを頂いてくるんだったわい。それにしても世間は狭いと言うか、なんと いうか。OpenBloksにFreeBSDを入れちゃうなんて、楽しいね。Linuxだけじゃ、つまんない もの!

info

恥ずかしながら、今までinfoって嫌いだったんだ。何でかって言うと、unixにはりっぱな manがあるじゃない! それなのにinfo形式なんて、車輪の再発明以外の何者でもないよな、 と思っていたんだ。でも考えるに、unixと言えども、FSFの方に足を向けて寝る事が出来ない ぐらい恩恵を受けている。

そして、FSFと言えば、emacs繋がりでマニュアルはinfoが圧倒的に多くて、メンテナンス されている。ならば、これを利用しない手はないよな。

man manならぬ、info infoしましたよ。emacs上だと、C-h i になる。emacs上の方が どんなマニュアルが有るか、一覧が確認出来るので便利かな。(これも一重に、install-info なんてコマンドのおかげですかね)

使うコマンドは、スペースで進め、バックスペースで戻れ、nで次の章、pで前の章、uで上 の章(節)、iで、インデックスの検索。これぐらい覚えておけばスイスイと渡り歩けるかな。

iが便利だよー。Windowsの冴子先生より、ずっと働き者。

Gaucheのinfoで、i して、call-withを検索したら 18個の候補が見つかった。, を押すと それらを次々に表示してくれるので、とっても楽ちん。今までは、索引の所に行って、一項目 づつ表示させてたものなあ。 もっと早く知っとくべきだった。人生を無駄にしたわい。(大げさ だなあ)

それにしても、GNU何とかを名乗っているコマンドは、必ずinfoが付いているのだろうか? texinfoパッケージを入れれば、makeinfoで自動化してくれるけど、原稿を作るのは、開発者 のお仕事です。ちょっと作ったアプリがいつの間にかみんなに使われるようになって、 マニュアル書くの面倒だなあ。動きは、source にみんな書いてあるよで、逃げちゃう人も いるのかな?

emacs default.el

こうしてinfoに味をしめたおいらは、ちょいと emacsの挙動を調べてみる気になった。 Windows7に、clojure用のLispboxが入っているんだけど、こいつを起動すると長い時間を かけてSlimeが起動してclojureが上がってくる。いつもclojureを使いたいわけではないので、 この挙動を停止させたいたんだ。自動起動って何処に書いてあるの? おいらが知ってる のは、.emacsぐらいだよ。

info emacsして、早速 i。検索語は、startupぐらいでええかな。 候補が7つ出て、3個目 で、それらしいのに行き着いた。site-start.elとdefault.elだってさ。探してみたら、default.elが 見つかった。早速、clojureを起動する関数をでっちあげたよ。

(defun clj ()
  "Run clojure"
   (interactive)
   (load-file "C:\\app\\clojure-box\\emacs\\site-lisp\\clj-default.el"))

clj-defaupt.elは、単にdefaupt.elを改名しただけ。これでclojure-boxの呪縛から解き放たれた ので、記念にschemeも動くようにしておく。schemeは、あの方が頑張っておられるWindows用 のgaucheでも良いのだけど、ちょっと目先を変えて、petiteにしてみた。R6RS対応になった という事で、暫くはマニュアルと首っぴきになるかな。infoがあれば嬉しいんだけど、どこかに ないものかのう。

(setq scheme-program-name "petite")
(autoload 'scheme-mode "cmuscheme" "Major mode for Scheme." t)
(autoload 'run-scheme "cmuscheme" "Run an inferior Scheme process." t)
(defun scheme-other-window ()
  "Run scheme on other window"
  (interactive)
  (let ((sw (selected-window)))
    (save-excursion
      (switch-to-buffer-other-window
       (get-buffer-create "*scheme*"))
      (run-scheme scheme-program-name)
      (select-window sw))))

(define-key global-map
  "\C-c\C-s" 'scheme-other-window)

(show-paren-mode)

そして、emacsついでに、ports/japaneseの中に有る elispの日本語infoをいれようとしたら、

===>   ja-elisp-manual-2.5.20000508_1 depends on file: /usr/local/share/emacs/22.3/lisp/textmodes/texinfmt.el - not found

と言ってきて、ソースを取りにいっちゃったんで、おかしいなあと思ったよ。調べてみたら *.el は圧縮されて、*.el.gz になってた。見たい人は、展開して見てねって事か。

これで準備完了。マニュアルだけじゃつまらないので何かないかと探していたら、面白いチュートリアルを見つけた。 優しい Emacs-Lisp 講座 これ、 実用的で良いなあ。

emacs-23.2 が、5/8にリリースされたんだけど、翌日には、ArchLinuxにbinaryがUpされてた。 早すぎて、人柱を仰せつかってる気分だわい。

emacs-w3m

infoがらみで、昔入れておいた、emacs-w3mを読み始めた。想像はつくと思うけど、w3mを emacsからコントロールしちゃおうって訳。

[sakae@cdr ~]$ cat .emacs-w3m
(setq w3m-quick-start nil)

こんなファイルを用意しておいて、M-x w3mすると、URL or Keyword (default HOME): って聞いてくるので、 gg:scheme petite info なんて風に入力する。これは、Google先生に 対する質問になる。

今検索したら、7300件ヒットした。更に絞込みたかったら、] を入力して、formの所へ 移動し、検索語を追加すれば良い。(emacsを追加したら、ヒット件数が増えちゃった。何故?)

後は、めぼしいURLへ移動して、uGする。uコマンドは、リンクアドレスをemacsにコピーする コマンド。Gは、そのコピーしたURLで、新しいWindowsに結果をロードするコマンドだ。

こうやって、めぼしいサイトを訪問していく。WindowにはTABが付けられていて、アクティブな やつの色が変わっている。Window間の移動は、C-c C-nか、C-c C-p。いらなくなったWindow の削除は、C-c C-w。C-c C-s すると、Window切り替え専用のエリアが出現するので、こちら を使って、移動しても良い。

あと、あるURLを見ていて、ちょっと上位の階層を見たい事がある。そんな時は、^ を 入力すればOK。これ、なかなか便利で、気に入ってます。また、閲覧の履歴は、s で、確認で きる。なかなか、気がきいてるね。

勿論、普通のw3mが使っているbookmarks.htmlも、vコマンドを使ってemacs側から参照可能 だし、aコマンドで、URLも追加出来る。もう、素でw3mを使う事は無いだろう。

global-emacs

info globalしてたら、emacsでも便利に使える事を発見。わざわざ、htagsしなくてもgtags だけで、すいすいとソース間を渡り歩けるようだ。

(require 'gtags)
(setq c-mode-hook
      '(lambda ()
          (global-set-key "\M-t" 'gtags-find-tag)     ;goto define func
          (global-set-key "\M-r" 'gtags-find-rtag)    ;goto ref
          (global-set-key "\M-s" 'gtags-find-symbol)  ;goto var
          (gtags-mode 1)))

他にも有用そうなキーバインドがあるようだけど、まあ、ブラウザーからぐりぐりの 代わりになれば、良いかなと。。

plolog

実用 Common Lispが出た。 厚くて熱くてとっても高くて手が出ない。

From: [81] デフォルトの名無しさん <sage>
Date: 2010/05/08(土) 12:14:23

女の子とのデートを一、二回止めれば十分買える値段だろ
愛とAIどっちが大事なんだよ

おいらのレベルだと、宴会2回分だよ。宴会を取るかAIを取るか悩ましい。

この本の中でprologをで書いて見せてるようだけど、餅は餅屋にまかせようと思うので 専用アプリを入れてみた。 親切にも、Prolog Programming が公開されているので、読みながら手を動かしてみよう。 下記は、そのためにemacsから使うための設定です。

(setq prolog-system 'swi)
(setq auto-mode-alist
      (append '(("\\.pl" . prolog-mode))
       auto-mode-alist))
(setq prolog-program-name "/usr/local/bin/pl")

まてまて、いきなりのprologよりも、petiteのサンプルにあった、ユニフェケーションを 先に見ておくのが吉かな。

業務連絡

emacsを理解するにはTECO が必要であり、clojureで楽をしようと思ったら、 あんちょこ も有ります。