2007-07-24
目次
「Wonderful Server Life」 第51回 田畑 英和
■ 〜環境設定編〜
今回は環境設定についてさらに詳しく解説していきたいと思います。前回の解説では、コンピュータリストのアカウントに対して環境設定を行う方法をみてきました。管理対象となるアカウントはコンピュータリストだけではありませんので、同様の環境設定はユーザアカウントやグループアカウントに対しても設定できます。
では異なる環境設定をユーザ/グループ/コンピュータリストに対して行った場合は、どのような結果になるでしょうか。
そもそも、いずれかのアカウントで設定した環境設定は、他のタイプのアカウントでは重複して設定しないようにすれば、なにも悩むことはなくシンプルな構成になります。ですが、実際には異なるタイプのアカウントに、環境設定の同じ項目を設定することは可能です。
◇環境設定の上書き
前回の例では、コンピュータリストに対してDockの位置を「右」に設定しました。さらに、グループとユーザに対して以下のような設定を行った場合どのような結果になるかをみてみましょう。
「Dockの位置」の設定例
・グループ
「下」
・コンピュータリスト
「右」
・ユーザ
「左」
Dockは左/下/右のいずれかの位置にしか表示できませんので、すべての設定が反映されることはありません。ですので3つの設定のうち、いずれか1つが反映されることになります。どの設定が反映されるかですが、アカウントのタイプによって次のような優先順位が決まっています。
・環境設定の優先順位
ユーザ > コンピュータリスト > グループ
つまり、今回の例ではユーザレベルの環境設定が優先され、該当するユーザでログインした場合、Dockは「左」に表示されることになります。もし、ユーザレベルでの環境設定がなければ(あるいは「Dockの位置」の環境設定が行われていないユーザであれば)、コンピュータリストの設定が優先されて、Dockは「右」に、グループの環境設定しかなければ、Dockは「下」に表示されることになります。
このように、最終的にはいずれか1つのパラメータしか設定できないような項目では、アカウントタイプの優先順位によって、設定が上書きされます。
◇環境設定の結合
「Dockの位置」はいずれか1つのパラメータしか設定できませんが、他の項目では複数のパラメータを設定できるものもあります。例えば、前回紹介しました「Dockの項目」などはパラメータを複数設定可能です。
このような項目で以下のような設定を行った場合、どのような結果になるかをみてみましょう。
「Dockの項目」の設定例
・グループ
「Quartz Composer」
・コンピュータリスト
「Xcode」
・ユーザ
「Interface Builder」
Dockには複数のアプリケーションを登録することができます。該当するユーザでログインした場合、Dockにはグループ/コンピュータリスト/ユーザに対するすべての設定が結合された状態で反映されます。つまりユーザに対して設定したアプリケーションだけではなく、コンピュータリスト/グループに対して設定したアプリケーションもDockに登録されます。
このように、複数のパラメータを設定可能な項目では、上書きではなく該当するすべての設定が結合されます。
◇環境設定のコツ
環境設定には「上書き」と「結合」の2種類があることが分りました。ですので、無計画に環境設定を行いますと、異なるタイプのアカウントに対する設定が影響し、意図した環境設定が実現できないような場合も考えられます。
そこで、基本的な方針としては、異なるタイプのアカウント間で重複した設定を行わないことが考えられます。設定が重複していなければ、「上書き」や「結合」が発生することもありませんので、見通しの良い環境設定を行うことができます。
もちろん必要があれば、「上書き」や「結合」を利用することもあるでしょうが、その場合は十分計画的に行うようにしましょう。
さて、今回は重複した環境設定がどのように処理されるかを解説しました。次回はユーザが複数のグループに所属していた場合、環境設定がどのように反映されるかを解説したいと思います。
つづく
小池邦人のCarbon視点でCocoa探求(2007/07/20)
〜 情報収集の日々 〜
さて、さっそく開発を始めましょう(ワクワクしますね!)。と言っても、まずはCocoaに関する情報収集を行い、開発に最低限必要な技術を習得しておきます。まず最初に調べるべきは、米国と日本のApple社デベロッパーサイトでしょう。Cocoaに関するすべての情報(リソース)には、以下のページを入り口としてアクセスすることが可能です。
・AppleデベロッパーサイトCocoa関連入り口
http://developer.apple.com/cocoa/
初心者がこのページで最初にチェックするのは「Fundamentals」と「APIReference」の2カ所だと思います。そのうちCocoa API(クラスとメソッド)の状況を大まかに把握するために、まずはAPI Referenceの方を参照してみましょう。
・AppleテベロッパーサイトCocoa API Referenceページ
http://developer.apple.com/referencelibrary/API_Fundamentals/Cocoa-api-date.html
すると、ページタイトルは「Cocoa Frameworks」となっています。Cocoaで最大かつ最も利用されるFrameworkは「Application Kit」と「Foundation」の2つですので、まずそれらのドキュメントをダウンロードしてみます。
「Application Kit Framework Reference」
http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/ObjC_classic/index.html
「Foundation Framework Reference」
http://developer.apple.com/documentation/Cocoa/Reference/Foundation/ObjC_classic/index.html
「Application Kit」とはCarbonの「HIToolBox」に相当し、ユーザインターフェース構築に関わるクラス(Carbonで言うところのマネージャ)が集められています。つまり、「もう64Bit化しない」とAppleが宣言した部分がHIToolBoxであり、「代わりに使いなさい」と推奨されたのがApplication Kitと言うわけです。もう片方の「Foundation」は、Carbonの「CoreFoundation」に準じるFrameworkです。つまり、もしCarbonアプリケーション開発時にCoreFoundation APIに慣れ親しんでいたとしたら、Cocoaの半分のクラスやメソッドの習得については、それほど労力を必要としないかもしれません(希望的観測)。
また、OpneGL、CoreGraphics、CoreAudio、QuickTimeといったCarbonでもお馴染みのFrameworkはCocoaとCarbonの両方から利用できますので、これらで習得した技術はそのままCocoaでも生かすことができます。ただし現状のQuickTimeについては、HIToolBoxと同じく「64Bit化しない」と宣言されていますので、これから使用する場合には注意が必要です。QuickTimeは、そのうち「CoreQuickTime」とかに名称変更されて(笑)リニューアル再登場するかもしれませんね。でないと、「QTKit」(CocoaのQT関連Framework)に存在しない機能は64Bitアプリケーションで利用不可となり、メディア関連の開発では問題が噴出しそうな気がします…。
さて、話をApplication KitとFoundationのドキュメントに戻します。両者の内容を調べてみると、両Frameworkのクラス数はそれぞれが150以上、「Application Kit Framework Reference」が約3000ページで「FoundationFramework Reference」が約2000ページの内容となっています。最低限の説明しか記載されていないリファレンスでさえこのページ数です! とてもじゃないですがメソッド数は数える気にもなりません(笑)。加えて、内容は英語ですから、技術習得の効率を考えれば、日本のデベロッパーサイトに和訳があることを期待してしまいます。それでは、日本のデベロッパーサイトを調べてみましょう。
・Appleデベロッパーサイト(日本)翻訳ドキュメントサイト
http://developer.apple.com/jp/documentation/japanese.html
Cocoa関連で翻訳されているドキュメントは以下のみです(それも半分はMOSAサイトにあります)。
・Cocoa基礎ガイド(Fundamentals) (PDF 7.8MB)
・アプリケーションアーキテクチャ入門 (PDF 1.1MB)
・Objective-C プログラミング言語
・Cocoa バインディング入門
・キー値コーディング(Key Value Coding)
・キー値監視について(Key Value Observing)
・Core Data プログラミングガイド
・Document-Based Applications Overview抄訳(MOSAサイト)
・Cocoa Drawing ガイド抄訳(MOSAサイト)
・Cocoaテキストシステム抄訳(MOSAサイト)
・Text System オーバービュー
・Text System Storage Layer オーバービュー
・String プログラミングガイド
・Attributed Strings プログラミングガイド
残念ながら両Frameworkのリファレンスの和訳は存在しません。それにしても、最低限この2つの和訳ぐらいは存在していてもバチは当たらないと思うのですが…。上記の一覧のうち、バインディング、キー値コーディング、キー値監視、Core Dataに関するドキュメントは、割と最近Cocoaに導入された新技術の解説です。ですから、これからCocoaに取り組もうという人には、まだあまり必要ないと思われます。それより、MOSAで行った抄訳ドキュメントの方が即戦力として役に立つでしょう。ちなみに、MOSAのドキュメントサイトから貼られているリンクはもう古くなっており(涙)正しくは以下の場所にあります。
「MOSAテクニカルドキュメント要約ライブラリ」
http://www.mosa.gr.jp/?page_id=19
また、MOSA伝でも記事を書いていただいた木下誠氏の「Cocoa入門ビデオ」(初級編、中級編、上級編)がムービーとして登録されていますので、こちらを最初から通しで見れば、Cocoaの全体像や開発手順を把握することが容易になると思われます。
さて、Apple社のCocoa関連の日本語ドキュメントがここまで貧弱だと、外部から出版されているCocoaプログラミングに関する書籍に頼るしかありません。今回、筆者が連載中に参考にしようと考えているのは以下の3冊です。
「Objectve-C Mac OS X プログラミング」萩原剛志著
「Mac OS X Cocoa プログラミング」アーロン・ヒレガス著 村上雅章訳
「Happy Macintosh Developing Time」木下誠著
Objective-Cの習得には萩原氏の「Objectve-C Mac OS X プログラミング」が最適です。Cocoaプログラミング技術の習得にはアーロン・ヒレガス氏の「MacOS X Cocoa プログラミング」を、Cocoaの最新技術のチェックには先ほどの入門ビデオでも紹介した木下氏の「Happy Macintosh Developing Time」を参考にします。ちなみに、木下氏の「Happy Macintosh Developing Time」はエディションにより内容がまったく異なりますので(表紙が赤と黒)、購入時には注意してください(赤い方が最新)。
これらの書籍と日本語翻訳ドキュメントでカバーしきれない箇所は、その都度適切な英語ドキュメントを探して紹介したいと思います。さて、これで資料の準備は完了。次回からは、いよいよXcodeとInterface Builderを起動しCocoaプログラミング・ワールドの探求へと突入します。
つづく
ターミナルの向こうから 第6回 海上 忍
〜強力無比なエディタ「Emacs」を使う(2)〜
Emacsでなにができるか、その実力の一端を紹介した前回に続き、今回はAquaで動くEmacs「Carbon Emacs」を例に、基本的な環境設定の方法を紹介する。
・「.emacs.el」を用意しよう
前回、Emacsは起動時に「.emacs.el」というファイルを参照すると書いたが、ドットファイルはFinderに表示されない(ファイルダイアログにも現れない)ため、通常の方法ではファイルを開くことすらできない。Carbon Emacsの場合なくても動作する — 日本語環境向けの初期設定が適切に施されているため、なくてもそれなりに使える — ものの、使いやすくカスタマイズするためには、やはり「.emacs.el」が必要だ。
はじめてCarbon Emacsを使う場合には、ターミナルから以下のとおりコマンドを実行しよう。最初の行ではtouchコマンドで空のファイルを作成、次の行ではopenコマンドを利用しテキストエディットでファイルを開く、という作業内容だ。なお、コメント行(2つ以上並んだセミコロンで始まる)に日本語を使うときは、保存時にエンコーディング形式として「日本語(ISO 2022-JP)」を指定すること。
- - - - -
$ touch ~/.emacs.el
$ open -e ~/.emacs.el
注:「~」はホームディレクトリを意味するシェルの記号
- - - - -
これで「.emacs.el」が編集可能になったわけだが、Emacs-Lispを理解しないかぎり自由なカスタマイズは不可能。誰もが時間をかけて文法を学べるわけではないので、まずは他のCarbon Emacsユーザの設定を拝借することからはじめよう。特に前回も紹介したCarbon Emacsの配布サイトには、有用な情報が満載されているので、使い始めのうちはお世話になるはずだ。
以下に示すリストは、筆者が利用している「.emacs.el」のうち、重要かつ便利と思われる設定を抜き出したもの。各行の意味するところを、順を追って説明してみよう。
- - - - -
1: ;; -*- Coding: iso-2022-jp -*-
2:
3: ;; file coding
4: (set-default-coding-systems 'sjis-dos)
5:
6: ;; more colorful
7: (if window-system (progn
8: (tool-bar-mode nil)
9: (setq initial-frame-alist '((width . 80) (height . 30)))
10: (set-background-color "RoyalBlue4")
11: (set-foreground-color "LightGray")
12: (set-cursor-color "dim gray")
13: ))
14:
15: ;; save cursor position
16: (load "saveplace")
17: (setq-default save-place t)
18: (setq save-place-file "~/.emacs.d/save-places")
- - - - -
まずは1行目から。(.emacs.elの)コーディングシステムが正しく判定されないことがあるため、先頭行に記述する一種のおまじないだ。これで、必ずISO-2022-JPのファイルとして読み込まれる。
4行目では、作業内容をファイルとして保存するときに適用する文字エンコーディング形式を指定する。Carbon Emacsの初期値ではUTF-8が指定されているが、まだMac OS XではS-JISのほうが出番が多いため、筆者は「sjis-dos」(改行コードはCRLF)としている。ちなみに、「sjis-mac」とすると改行コードはCR、「sjis-unix」とするとLFだ。
7〜13行目では、画面サイズを横80×縦30字としたうえで、背景色に濃いめの青(RoyalBlue4)を、文字色に明るい灰色(LightGray)を、カーソルの色に濃い灰色(dim gray)を指定している。長時間のコーディングに耐える配色を、試行錯誤して調整するのも一興だろう。
16〜18行では、saveplaceというEmacs-Lispで記述されたプログラムを呼び出している。このように記述すると、ファイルを閉じたときのカーソル位置を記録し、次回ファイルを開いたときその位置にカーソルを移動する働きをもつので、中断した作業をすばやく再開できる。
・フォントを着替えよう
Carbon Emacsでは、Mac OS X標準のフォントパネルを利用できる。
[Options]→[Show/Hide]→[Font Panel]を選択し、ヒラギノなど任意のフォントを指定すれば、画面全体のフォントがデフォルトのOsakaフォントから変更されるはずだ。しかし、英数字と漢字・かなとの表示のバランスや、「.emacs.el」に設定を残せないことを考えると、この方法がベストとは思えない。
いろいろ試した結果、細身のフォントデザインで知られるエヌフォーの
「Tokyo-等幅」フォントと、apple-monacoの組み合わせが、筆者にとってもっとも作業しやすいフォント環境となった。以下にリストを示すので、もしTokyo-Font for Internetを所有しているのならば、「.emacs.el」の末尾にでも書き加えていただきたい。
- - - - -
;; Tokyo-font Touhaba
(if window-system (progn
(create-fontset-from-fontset-spec
(concat
"-*-fixed-medium-r-normal-*-14-*-*-*-*-*-fontset-tokyo14,"
"japanese-jisx0208:-apple-tokyo 等幅-medium-r-normal--14-140-72-72-m-140-jisx0208.1983-sjis,"
"ascii:-apple-monaco-medium-r-normal-*-14-*-*-*-*-*-mac-roman"))
(set-default-font "fontset-tokyo14")
(setq default-frame-alist (append '((font . "fontset-tokyo14"))))
))
- - - - -
今回はCarbon Emacsの設定に終始してしまったが、集中して作業(コーディング/執筆)するためにも、テキストエディタだけは軽視できないということでお許しいただきたい。次回は、LaTeXの紹介とMac OS Xへの導入方法について解説する予定だ。
◇MOSAからのお知らせと編集後記は割愛します◇