こんにちは。グーグルでLinux システムアドミニストレータをしている矢吹大輔です。各国にあるグーグルのオフィスで社員が利用する社内インフラストラクチャを設計、開発、運用する仕事をしています。オープンソースのソフトウェアとグーグルのテクノロジを組み合わせて、各国の社員が仕事をしやすいようなシステムを作っています。
1990年代前半に「Macintosh Classic II」を買ってMacユーザーになり、UNIXも同じ頃に大学で使い始めました。その組み合わせは(SunOSの代わりにLinuxになりましたが)今でも続いています。
そんな私のデスクトップを、自宅の環境を中心にご紹介します。
■ 自宅、会社ともにLinuxとMacの併用
自宅ではメインとしてMacBook、iTunes/iPhotoのデータストレージやその他の作業用としてPower Mac G4(Mirrored Drive Doors)、会社ではメインマシンとしてPC ワークステーション(自社でメンテナンスしているUbuntuベースの OS)、ミーティングや出張時用としてMacBook Pro、と使い分けています。
モニターは自宅、会社ともにデルの24インチディスプレイ(1920×1200ピクセル)を横長で2枚並べて利用しています。会社では1台のPCから2本のDVIケーブルをそれぞれモニターにつなぐ、一般的なデュアルモニター構成です。
自宅ではMacBookを左側のモニター、Power Mac G4を右側のモニターに接続し、「Synergy」というソフトを使って1組のキーボードとマウスで両方のモニターをシームレスに操作しています。MacBookのディスプレイもあるのでトリプルモニターなのですが、サイズの違うモニターでのマルチモニター構成は私には使いにくいので、MacBookのディスプレイはほとんど使っていません。
|
自宅のデスクトップ構成
|
ちなみにキーボードとマウスは、10年以上前から慣れ親しんだ「Sun Type-5(UNIX Universalという英語配列キーボードの一種)」をAvocentのKVMスイッチを介して各マシンに接続しています。ほとんど出番のないWindows PCも、KVMスイッチを介してこのキーボードとマウスと右側のモニターで操作します。
|
ある日の自宅のデスクトップの風景
|
自宅ではLinuxサーバーとSolarisサーバーを使っています。ここではDNS(recursiveサーバーと自宅用のゾーンのauthoritativeサーバー)、DHCP、LDAP、NTP、Subversionレポジトリ、Trac(Wiki)などを動かしたり、新しくでてきたサーバーサイド技術を試したりします。最近、VMware ESXiが気になるので、Linuxサーバーはその上で動かしてみるつもりです。
引越しの時に考えなければいけないことが増えるのがいやで、外向けのサービス(DNS、メール、Webサーバーなど)は自宅サーバーでは動かさず、アメリカのホスティングプロバイダーで専用サーバーを借りています。そのうちslicehostかAmazon EC2でも試してみようと思っています。「デスクトップ百景」のテーマから逸れるので、サーバーの話はこのくらいにしておきましょう。
■ エンジニアの必需品はターミナルエミュレータとシェル
Macのターミナルエミュレータは、TerminalとiTermを環境によって使い分けています。いずれも透明度を設定していますが、これは裏に透けて見えるWebブラウザに表示された内容を見ながら作業をすると便利なことがたまにあるからです。(とは言うものの、実は見た目重視です)。後述するエディタも同じ理由で透けています。
Mac OS 10.5(Leopard)からは、Terminalの機能が私にとって必要な機能をすべて満たしているので、最近は環境をTerminalに戻し始めています。今はまだ併用中ですが、身の回りからMac OS 10.4(Tiger)がなくなったらTerminalに統一するつもりです。
|
透明なのには理由がある
|
GNU screenを使うので、TerminalやiTermの中で多数のタブを開く必要はないのですが、同時に並べてそれぞれできるだけ広く表示したい情報(top、straceといったコマンドの実行結果やサーバーのログなど)もあるので、ターミナルエミュレータのウインドウは1枚のモニター上で2~3枚くらい開いておくことが多いです。
そして、同じモニター内に開いたそれらのウインドウは「screen -x(マルチディスプレイモード)」でscreen セッションを共有しています。
|
screenは必須。左右のターミナルウインドウはscreenセッションを共有しており、どちらからでも同じシェルセッションを操作できる
|
|
GKrellM
|
シェルは、大学時代から数年前まではずっと「tcsh」を使っていました。今は、業務でシェルスクリプトを書く時に「bourne shell」系のインタープリタを前提に書くため、普段もbashを使っています。自宅のホームディレクトリには1993年頃からのファイルが残っており、各種設定用のドットファイルはいささか雑然としています(笑)。
多くのドットファイルはバージョン管理しており、新しいマシンを買った場合でもレポジトリからチェックアウトすれば同じ設定で利用できます。
エンジニアの習性か、今使っているコンピュータがどのような状態か(CPU、メモリ、ディスク、ネットワークなどの利用状況)がざっとわからないと気持ちが悪いので、 Mac ではDockに「Activity Monitor」を、LinuxではGKrellMをデスクトップに表示するようにしています。ちなみに、以前はGKrellMの Solarisポートをメンテナンスしていました。
■ エディタとバージョン管理はオーソドックス
Linux でのコーディングの際にはエディタとしてGNU Emacsを使っています。Linux上の設定ファイルはviで編集しますし、プログラムをさっと数行手直ししたいという時にviで済ませることもあります。ただ、私にとってviはどんな UNIX マシンにでもインストールされているエディタとしての意義が大きいので、.vimrcをがっちりカスタマイズして、特定の設定に依存するような使い方はあまり熱心に追求していません。
自宅でMacを使って開発する時は、開発言語とプラットフォームに応じて使い分けています。Objective-Cでのコーディング(iPhone アプリケーションの開発)には Xcodeを使い、Python(Google App Engine での開発など)、Ruby、シェル、HTMLなどのコーディングにはCarbon Emacsを使っています。自宅で書くコードはLinuxサーバー上のSubversionレポジトリでバージョン管理しています。
|
エディタはEmacs
|
自宅ではサーバー・ネットワーク設定手順、アプリケーションの設計書、引っ越しや出張時のチェックリストなどをはじめとする文書を、Tracの WikiやGoogle ドキュメント、Google Sitesで管理しています。これらアプリケーションは勤務先でも内容や要件に応じて使い分けています。
技術文書の翻訳など、しっくりくる訳語を求めて原文と辞書を頻繁に行き来するような場合には、Emacsで「lookup.el」を使って小学館ランダムハウス英語辞典や研究社リーダーズ英和辞典+プラスなどの市販の辞書を引きながら作業をします。
現在の会社ではWord、Excel、PowerPointが必要な場面は無いのですが、プライベートでこれらのアプリケーションを使って入力・整形しなければいけない文書(各種申請書や履歴書など)があります。その場合は、Windows PCでWordを使って入力・更新した上で、コンバートしたPDFファイルとともにSubversionでバージョン管理しています。
私にとって Windowsが必要な場面はこの時と、Internet ExplorerしかサポートしていないWebサイトで何かしなければならない時くらいです。バージョン管理に関してはgitへ移行したいのですが、TortoiseSVNの Explorerとの親和性の高さ、またiPhoneアプリケーションの開発環境であるXcodeでのサポートという点でSubversionはまだ完全には手放せません。
■ 基本のツールは Linux とMacで使えるものを
Webブラウザは Firefoxを利用しています。Linuxと Macの両方で利用でき、「Tab Mix Plus」や「Firebug」「Fetch Text URL」「Live HTTP headers」「Ubiquity」、「Greasemonkey」を使った「AutoPagerize」をはじめとする各種の機能拡張が充実していることもFirefoxを手放せない理由です。検索を楽にする方法はいろいろありますが、私はSmart Keywordsを使い、URL バーに「"alc 英単語"」と 入力して英辞郎 on the Webを検索するようにしています。ちなみに、ブラウザのホームページは空白ページに設定してあります。
|
Smart Keywords ですばやく検索
|
メールソフトは、これまでGNU Emacs上で「mh-e」「Mew」「Wanderlust」を利用してきましたが、数年前にGmailに切り替えました。スパム排除の面で、私のSpamAssassinの設定がGmailにかなわなかったためです。ただし今でも、複数のメール配送経路を設定して、Gmailの障害時にもMewでメールが読み書きできるようにしてあります。
スケジュール管理は Google カレンダーを使っていて、「IT 勉強会」「F1 2008」「livedoor Weather」などいろいろなパブリックカレンダーを登録しています。
会社で私の所属するグループはアメリカ、アジア、ヨーロッパの各国にメンバーが分散しており、いつも Google TalkとIRCを使って連絡を取り合っています。IRC クライアントは、LinuxではX-Chat、MacではX-Chat Aquaを利用しています。これは、Mac と Linuxで似たような使用感である、という以外に、これといった理由はありません。
仕事中は(開発中のサービスについて議論をしているか、ミーティングか、フルーツを食べるか、ご飯を食べるか、自分の席で育てている植物に水をやるか、隣の席のロシア系アメリカ人の同僚にチェスで打ち負かされている時を除き)、たいていiPod touchかLast.fmで音楽を聴きながら作業をしています。
メールの受信やGoogle Talkで話しかけられた時などをはじめとして、各種のサウンドイフェクトやアニメーションやポップアップはほとんどオフにして、集中した状態が途切れることのないように設定しています。オフィスではあまりTwitterにはアクセスしませんし、自宅でも、集中して作業や考え事をしている時に妨げになるのがいやなのでTwitterrificはたいていウインドウを閉じています。
■ 英語環境で作業する理由
すでに書いた通り、キーボードは日本で広く使われているJIS配列ではなく、UNIX配列またはASCII配列のキーボードを使っているのですが、OSやWebを含むアプリケーションの言語設定も常に英語にしています。日本語をはじめとする各言語を通す(読み書きはできる)けれど、ベースのインターフェイスは英語、という設定が私の好みです。
|
言語設定は英語
|
これは、- 英語はユーザー数が多いので、バグがあった時に回避策などのノウハウが多く早く得られる
- 私が使うソフトウェアの開発者のほとんどは日本語が使えないので、バグレポートするときに設定項目名やエラーメッセージをそのまま使える
- 普段一緒に仕事をする人達の7割くらいは日本語が読めないので、プロジェクターで画面を見ながら話すのに便利
- 一部のWebアプリケーションなどでは、英語インターフェイスから新機能が導入されることがある
- 英語インターフェイスの方が実行速度が速いことがあるらしい(自分で比較したことはないので定かではない)
- ひらがな、カタカナ、漢字、アルファベットが混じるよりなんとなく見た目がすっきりする(気がする)
といった理由からです。
似たような意味で、ファイル名やディレクトリ名に使うのは英数字とハイフンとアンダースコアのみです。こうしておくと、シェルやQuicksilverでの補完などと組み合わせれば楽に指定できます。
また、アメリカでは日本ほど24時間表記を頻繁に使わないので、設定項目がある場合には AM/PM表記を使うようにしています。こうしておくと時間の話をしている時に頭の中で変換しなくてすみます。(ちなみに、私の所属するグループは東京オフィスの中でもなぜか日本人が極端に少ない部署で、普段の会話も英語です)。
■ Webベースのツールを活用、ダメなら自分で作る
写真の共有は Flickr、ちょっとしたメモはEvernote、一時的なファイル共有はDropboxといったように、(第三者に預けるのは怖いというデータ以外は)基本的にWebベースのサービスを使い、時と場所を選ばずにアクセスできるようにしています。複数の Mac、Linux、iPhoneを併用するというスタイルなので、それぞれにアプリケーションとデータをインストール、メンテナンスするのは手間がかかるからです。
RSSリーダーはBloglines を使っています。livedoor Readerに切り替えようと思いつつ、惰性でここまできてしまいました。
ブックマーク管理にはdel.icio.usを使っています。del.icio.usとdiggは、ちょっと時間が空いた時に面白いページを探すのに使っています。
ただ困ったことに、社内からdel.icio.usへのアクセスがサーバー側でスロットルされていて接続できないことが今まで何度かありました。仕事中にWebで探し物をしていて、面白そうな記事を見つけた時に「今は読んでいる時間がないけど(ソーシャル)ブックマークもできない」と困った末、自分で作ることにしました。
|
ソーシャルじゃない自作オンラインブックマーク「antisocial」
|
ソーシャルブックマークからソーシャルをひいた個人用オンラインブックマークをGoogle App Engineで作り、プライベートで使っているGoogle Apps For Your Domainで動かして非常用として使っています。ちなみに名前は「antisocial」と言います。
ご覧の通り、UIデザインは旧バージョンのdel.icio.usそのものなので公開はしていません。「あとで読む」を使えばよかったんじゃないか、と気づいたのは、antisocialができあがってしばらく経ってからのことでした。
タスク管理は、仕事以外のタスクについてはRemember The Milkを使っています。シドニーに住んでいる開発者が東京に来た時に会ってサーバー構成などいろいろ話を聞いて、納得というか安心したというのもあって愛用しています。
ただ、業務に関するタスク管理は、社外のサーバーを使うのはリスクがあるので、Macの iGTD、コマンドラインのTask、Emacsのorg-modeなどを試しつつ、いまも模索しています。
|
org-modeを試してみる
|
私にとってタスク管理システムに必要な基本条件は、仕事とプライベートのToDoを一覧できて、EmacsからでもFirefoxからでもiPhoneからでも参照できるオンラインのサービス、といったところで、やはり結局は自分で作るのが一番? という気がしています。
アドレス管理はMobileMeを使って、iPhoneと複数のMacのAddress Bookを同期しています。私は時間があればガーデニングか料理(作ることと食べること両方)かマウンテンバイク(ただし街乗り)などをしていることが多いので、ガーデニングショップ、雑貨屋、調理器具の店、それからレストランなどは営業時間や定休日やURLをMacのAddress Bookで登録してiPhoneと同期しています。行ったことがないけれどいつか行ってみたい店は(ちょっと手間ですが)住所まで登録するようにしています。
こうしておくと、その店の近くに何かの用事で行ったついでに、iPhone のGPSとGoogle マップを使うことで、あらかじめ登録しておいた店まで迷わずたどりつけるので重宝しています。かなり地味な使い方ですが、iPod touchからiPhoneに移ってから、私の生活で大きく変わったのは、この「行ったことのない場所へ行く」というごく当たり前の体験でした。Google Street Viewでの下見と iPhone/GPS/Google Mapsの組み合わせによって、今まで下りたことのなかった駅のお店もより気軽に行けるようになりました。
MobileMe であらかじめ登録しておき、iPhone 上ではわずか数タップで地図を表示。不案内な街でも迷わず目当ての店へ
|
携帯電話を使いこんでいる人からすれば「何を今さら」でしょうが、PalmなどのPDAを使ってきたユーザーとしては、データ入力はしっかりしたキーボードを使ってPC側で効率的に済ませ、データを利用するときは最小限の操作ですむ、この仕組みはとてもしっくりきます。
■ Macのユーティリティや設定いろいろ
|
Dockは右か左に
|
Dockは右または左に置いて、最小化はスケールエフェクトにしています。アプリケーションの起動や切り替えにはQuicksilverを愛用しているのでOS起動直後のDockにはアプリケーションアイコンはFinder とActivity Monitorしかありません。
自宅では、横方向の3840ピクセルに比べて縦方向は1200ピクセルしかないので、Dock を下におくと窮屈になります。そもそも Dockをあまり使わないので左右どちらに置くかは気にしません。そしてアイコンのサイズは、主張しすぎないようかなり小さく設定してあります。
Dashboardウィジェットで愛用しているのはDictionaryとWorld Clockです。仕事上、メール、Google Talk、IRC、ビデオカンファレンス、ミーティング、会話と一日中使うのはほぼすべて英語なのですが、ときには知らない単語(基本的に非技術用語)がでてきます。メールなどでも用件だけでなくちょっとしたニュアンスも伝えたいので、Thesaurusもよくひいています。
また、朝は時差の関係でカリフォルニアのエンジニアが帰ってしまう前に話をする、夜は出社したヨーロッパのエンジニアと話をつけてから帰る、何か急ぎの場合には、家でニューヨークのエンジニアと何かを相談してから眠るためにWorld Clockウィジェットを多用しています。
私がいま担当しているサービスは世界中のあらゆるグーグルオフィスで稼働しているため、ハードウェアトラブルがあった場合に、現地で作業してもらう担当者がオフィスにいる時間か確認するのにも便利です。(ちなみに Linuxではpst、mst、cst、estなどのコマンドエイリアスを設定し、それぞれのタイムゾーンの現在時刻が表示されるようにしています)。
SunOS 4.xでfvwmを使っていた頃から複数枚のワークスペースを使って作業をしてきたのでSpacesも利用しています。Mac OS XにSpacesが導入されるまで愛用していたVirtueDesktopsで、ワークスペースを切り替える時にCubeのアニメーションを使っていたのですが、それがSpacesで使えないことがLeopardにおける最大(?)の不満です。裏を返せば、それ以外は現在のMac OS Xの環境にはかなり満足しています。
■ 自宅以外でのデスクトップは「iPhone」
自宅やオフィスのデスクに向かっていない時の「デスクトップ」はiPhoneです。
独特な方向に進んだ日本の携帯電話とその方向性は、MacやLinux でインターネットにアクセスするというスタイルになじんだ私には魅力的には見えませんでした。携帯電話より先にMacを使いはじめた私には、iPhoneのほうがしっくりきます。
通勤時間が短いので自然との電車の中では本を読まなくなり、かわりにiPhoneでメールを処理する(書くのは会社か自宅でのほうが効率が良いので読んで振り分ける)か、iPod touchで音楽やポッドキャストを聴いたりします。聴いているポッドキャストは「
UC Berkeley on iTunes U」、「NYT Tech Talk」、「BBC Radio NewsPod」「Science@NASA」など、名の知られたオーソドックスなものが多いです。
iPhone とiPod touchはいずれも16GBモデルを使っていて、単体では記憶容量が足りないので両方持ち歩いて併用しています。iPod nanoはジョギングする時にNike+と一緒に使っています。
状況や作業の内容に応じて道具を使い分けるのは自然なことで、iPhoneでは、TwinkleやMidomiのように、ロケーション(GPS)、カメラ、加速度センサー、マイク、スピーカーといった、モバイルデバイスとしての特性をいかしたアプリケーションの開発に興味があります。
iPhone のMobile Safariによって、PCのWebブラウザとかなり近い状態で Webコンテンツにアクセスすることが外にいてもできるようになり、そのメリットは大きいです。ただ、iPhoneならではのアプリケーションという意味では、前述したようなロケーションを活かしたものが面白くなってくる気もしています。
矢吹大輔の利用ソフト・サービス
2008/10/03 11:05
|
矢吹大輔 東京都生まれ。サン・マイクロシステムズ株式会社でネットワーク関連のテクニカルサポート、Web 受託開発のベンチャーで顧客向けと自社内のサーバとネットワークの設計、構築、運用を経て、現在はグーグルの Linux システムアドミニストレータ。ブログ、twitter いずれもごくまれに更新中。 |
|