このページは Fe2+ の使用しているコンピューターや使ったことのあるソフトウェアに関して駄文を書き連ね、もって自らの好みを暴露せんとするものである。 ついでにリンク集の機能も備えることになって一石二鳥である。
現在自宅で使っているのは Apple の MacBook である。 その前に使っていたのは(まだときどき使うが)フロンティア神代の K6-III 450MHz という年代物のマシンである。 さらにその前に使っていたのは兄に貰った中古のTEACのマシンで CPU は確か 486DX4 だったはずである。
学校では IBM の ThinkPad X24 を使わせて貰っている。 その前にも X21 を使っていたし、バイト先でもほとんど X21 で作業しているので、私にとって ThinkPad X シリーズがノートに関する一つの基準である。 あれ以上重いノートなど持つ気はしない。 (と言っていたわりに MacBook を買ってしまったけど)
もちろん昔は自宅では MS-DOS を使っていた。 そこに unix-like tools とかを入れていた。 が、実際に Unix に触れるのは卒論のためのプログラムを動かすために使い始めるころが最初である。 ログインする端末は Mac だった。 大学院に進むと、Sun OS (まだ Solaris になる前である)のサーバーにX端末でログインするような環境だった。 研究室には NeXT とか DigitalUnix (その後会社の買収などがあって Tru64 Unix に改称)などもあった。
自宅の PC も Unix 系の OS に変えようと思って最初に選択したのは、Plamo Linux である。 当時は Linux と FreeBSD の勢力が拮抗していたように思う。 FreeBSD を選ばなかった理由は特に思い付かないが、とりあえずパッケージ管理なんか無視して make して入れていけばいいというようなルーズさが各種 Linux の中からの選択の基準であった。
現在は Gentoo Linux を使っている。
これは、とにかく全て自分のところでコンパイルするところとか、パッケージシステムが Python で書かれていて親近感があるところとかに惹かれて使いはじめた。
導入当初は、gcc や glibc のような大物をしょっちゅうアップデートしようとするので、まともに付き合っていると週に1日はアップデート用のコンパイルで終ってしまうことになるような状況だったが、最近はとても落ち着いている。
情報については Gentoo JP やいろいろな人の日記から得ることが多い。
また、Bugzilla での対応が親切で細かい修正も依頼し易い。
(独立した Gentoo Linux のページ も作成中)
MacBook ではもちろん Mac OS X (Tiger) だ。 が、追加のパッケージシステムとして Gentoo prefix を使っている。 MacPorts は気に食わなくてやめた。 Fink はインストールしたけど使っていない。
学校のノートでは Vine Linux を使っていたこともある。 普通に使えればいいや、というやや消極的な姿勢で使う分にはいい選択だと思う。 apt-get は便利だ。
都立大の数学科で使われていたのが Sun OS だったので、シェルは csh だった。 そういうわけで、Linux を使うようになっても tcsh は手放せない。 ただ、訂正機能は余計だと思う。
bash は必要に迫られて使うこともある。 sh よりは便利だが、要するに readline 付きの sh だとしか思っていない。
コンピューターですることといえば、文章を書くことプログラミングをすることが中心である。 つまり、エディターなくして何も始まらない。 UNIX 界には大きく分けて Emacs 派と vi 派がいるが、私は Emacs 派である。 そして Emacs には GNU Emacs と XEmacs があるが、ずっと GNU Emacs を使い続けている。
例外的に、root で作業する時には vi を使わないといけないというのが UNIX の掟である。 と思っていたが、Gentoo Linux では nano というのを使うのが推奨されているようだ。 これは pico のクローンだというのだが、pico を知らないので比較のしようがない。 少なくとも vi よりは取っ付き易い。 とはいえ、編集機能が貧弱なのは否めず、結局 vi は導入している。
最初に見たブラウザーはやはり Mosaic だっただろうか。 少なくとも立ち上げてみたことはある。 そのあとは Netscape の天下だったのでバージョン 4 ぐらいまではずっと Netscape だった。
その後もっぱら lynx を使っていたが、国際化を考えると kterm などのターミナルの表示という制約はきつ過ぎる。
というわけで Netscape 6,7 や Mozilla を経て、現在は Firefox を使っている。
メールの読み書きは、最初(少なくとも UNIX 上では)、rmail という Emacs に付属のものを使っていた。 MH というのも流行っていたが、移行する価値は感じられなかった。
自宅で Plamo Linux を使うようになると、mew を使うようになった。 これも Emacs 上で動く(というか Emacs 上で動くものしか選択肢にない)。 PPP 接続の環境では、im というスクリプト群でメールの送受信を行なうシステムが合理的だった。 Emacs のバージョンが 21 に上がると mew のバージョンも上げざるを得なかったが、そうすると im を使わなくなるということで、しばらく Emacs のバージョンを上げるのを見送っていたこともある。
現在は Wanderlust を使っている。 メールが溜ってくると動作が非常に遅くなる欠点があったが、一時よりは大幅に改善されている。 選択の基準は Maildir 形式のサポートがあること。 これは次に述べる POP 取得ソフトとの絡みである。
メールはプロバイダー(私の場合は @nifty)から POP で取得するのが一般的だと思うが、これに現在は getmail というのを使っている。 バージョン 3 から Maildir 形式が標準になったので、/var/spool/mail とかは経由しないで自分のディレクトリーの中に保存する。 getmail は Python スクリプトで、最初に使い始めたのは雑誌(Unix User だったか?)で紹介されていたのを見たからであり、その前は fetchmail を使っていた。 getmail の作者の Charles Cazabon 氏はなかなか頑固な人のようで、メーリングリストに上手く動かないという報告が来ると、大抵アドホックに修正する道を拒否してプロバイダーの設定が悪いからプロバイダーと交渉しろ、という話になる。
メールの読み書きを Emacs 上でしかしないということを言ったが、これは実は日本語変換の問題である。
まず、現在使っている変換システムは FreeWnn で、結局のところ都立大で Wnn4.2 とかを使っていた流れで保守的に移行していないということである。 実際のところ、FreeWnn の開発は停滞しているので歯がゆい。 本当は変換エンジンの改良などの貢献ができればいいのだが、そこまでの技量も時間もない。
これを一般的に端末やブラウザーで使うには kinput2 を経由する。 一方、Emacs で使う時には Tamago を使う(他の方法もあるが)。 ここで(趣味の問題なのだが)、ローマ字をカスタマイズしようとすると後者の方が自由度が大きい。 前者だと nj でにゃ行を表す方法が判らない。 そういうわけで、好みの日本語変換インターフェイスというかローマ字システムは Emacs 上でしか実現できていないので、メールなどの日本語の読み書きは Emacs 上でしか行なえないということになる。
2004年から、PRIME という予測入力システムを使い始めた。 Firefox などの Gtk アプリには uim から immodule 経由でこれを使っている。 XIM プロトコルの必要なソフトウェアには kinput2 を uim-xim で置き換えて使用することができる。 ローマ字入力は水鏡(suikyo)というのを経由するのだが、柔軟にカスタマイズし易い。 予測入力ということで、直前に打った単語などは少しの打鍵で変換できるのだが、変換できるかどうかを予測候補ウィンドウで常に監視しながら打ち込むことになる。 おかげで、普段は何となく手元を見ていることが多かったのが、キーボードから目を離してタッチタイプする練習にはなる気がする。 難を言えば、今までの連文節変換に慣れた頭で少し長く打ち込んでしまうと変換できないので、全体として変換が遅くなることだ。
今ではすっかり標準的な地位を確立した感のある SSH であるが、昔は telnet や r-コマンドが平気で使われていた。 最初に SSH に触れた頃は純正の SSH を使っていた。 その後、バージョンが上がる時にライセンスがうるさくなってきたので OpenSSH に乗り換えた。
OpenSSH も依存している OpenSSL は、昔は SSLeay と呼ばれていて、私が最初に使ったのは lynx を https に対応させるためだったと記憶している。
バージョン管理に触れたのは RCS が最初だったように記憶しているが、もはや使い方も定かではない。
やがて、CVS を使うようになった。 ネットワークで共同作業をするツールとしてなかなか便利だ。
バイト先では Microsoft の VisualSourceSafe なんかを使っていたが、チェックアウトという機能をどう考えるかで評価は分かれるだろう。
CVS の限界を多くの人が感じており、いくつものバージョン管理ソフトウェアが出現している。 Subversion は後継として有力視されているが、必要に迫られて Subversion を使っているプロジェクトのソースを取得する以外には使ったことがない。 個人的には Bazaar (旧称 Bazaar-NG)と Mercurial を使ってみて、Mercurial を気に入っている。
プログラマーは、あるいは UNIX を使う人は、C 言語を知らないと生きていけない。 そういうわけで、まあ知らない訳ではないのだが好きではない。 誰の言葉か忘れたが「C 言語は構造化アセンブラー」という規定が正しいと思う。
普段使いの言語は、Python である。 現在関わっている NZMATH プロジェクトでも使っている。 最初にこの言語を教えて貰ったのは、Nifty の FGALTS というフォーラムで、その当時 DOS 上で動くバージョン 1.3 をダウンロードして使い始めた。 DOS だからということなのか、int 型は 16 ビットで、ほとんど全て long にしないと何もできないと思った記憶がある。 でもこの long が多倍長整数なのに感動して使い始めたのはまちがいない。 $ や @ のような記号を使わないのもすっきりした印象があって好感が持てた。
もう一つよく使うのが awk である。 フィルターとしてはほぼ完璧だと思う。 grep と sed をパイプで繋ぐようなものは awk で書けばすっきりする。 おかげで sed の使い方がいつまで経っても覚えられない。
Python と awk については スクリプト言語のページも参照のこと。
アルバイトではもっぱら Java でのプログラミングをしていたので、Java の使用頻度はだいぶ高かった。 アルバイトするまで使ったことがなかったが、良く考えられた言語だと思う。 API ドキュメント は手放せないが。 Jakarta Project のお世話になることも多い。 その文書の幾らかは Ja-Jakarta Project で翻訳されている。