MOSA Multi-OS Software Artists

MOSAはソフトウェア開発者を支援します

  • iPhone/iPod touch アプリ紹介
  • MOSA掲示板
  • 活動履歴
  • About MOSA(English)

MOSA Developer News[MOSADeN=モサ伝]第264号

2007-08-28

目次

  • 「「Wonderful Server Life」    第53回   田畑 英和
  • 小池邦人のCarbon視点でCocoa探求
  • ターミナルの向こうから      第8回  海上 忍 

「Wonderful Server Life」  第53回  田畑 英和

  〜環境設定編〜

 iMacがモデルチェンジしiLifeやiWorkもバージョンアップしました。XserveやMac Proでも若干アップデートがありました。これらの機種には内蔵ハードディスクを複数台内蔵できますが、オプションとしてRAIDカードが選択可能になっています。
 さて、それでは今回は環境設定「モバイル環境」について解説します。「モバイル環境」では「モバイルアカウント」を設定することができます。

◇ローカルユーザとネットワークユーザ
 では、モバイルアカウントの説明をする前に、まずはローカルアカウントとネットワークアカウントの復習からしておきましょう。一般的にそれぞれのアカウントは次のような特徴を持っています。

・ローカルアカウント
  アカウントの保存場所:ローカルのディレクトリ(NetInfo)
  ホーム:起動ボリュームの「/ユーザ」の下
・ネットワークアカウント
  アカウントの保存場所:ディレクトリサーバ上(LDAP)
  ホーム:ファイルサーバ上のネットワークホーム

 ローカルアカウントはローカル環境でのみ使用可能なアカウントであるのに対し、ネットワークアカウントはネットワーク上で共有して他のコンピュータ上で使用することができます。
 つまり、ネットワークアカウントを使えばユーザをサーバ上で一元管理できるわけですが、サーバ上で管理されているネットワークユーザを使用するには、ネットワークに接続していることが大前提となります。
 ここで問題になるのがノートパソコンです。ノートパソコンですので持ち歩いて使用することもありますが、そうなるとネットワーク上のサーバに常時アクセスすることが難しくなります。こういった環境ではネットワークユーザではなくローカルユーザを使うしかありませんが、これではユーザの一元管理が出来ませんし、場合によってはネットワークユーザとローカルユーザを環境によって使い分けるといった面倒なことになってしまいます。

◇モバイルアカウント
 そこでモバイルアカウントの出番なのですが、モバイルアカウントを使えばネットワークユーザとローカルユーザを同一のアカウントで管理できるようになります。
 どうしてこういったことができるかといいますと、モバイルアカウントの設定をおこなえば、もともとネットワークユーザとして登録しておいたユーザアカウントの情報を、ローカル上(ローカルのNetInfo)にコピーすることができるのです。また、このときホームフォルダもローカル上に作成されます。
 アカウント情報をローカル上にコピーした後は,通常のローカルユーザと同じように使用できますので、コンピュータをネットワークから切り離した状態でも使用できるということになります。さらに、もともとモバイルアカウントはネットワークユーザとしてサーバ上に登録しますので、ユーザの一元管理も可能になるというわけです。
 なおモバイルアカウントは、ノートパソコンだけではなく、デスクトップ機でも利用可能です。

◇モバイルアカウントの設定
 モバイルアカウントの設定方法ですが、まずは普通にネットワークユーザを作成します。次に「ワークグループマネージャ」の「環境設定」で「モバイル環境」を選択し、「同期」で「オフラインで使用するためにアカウントを同期する」をチェックします。
 この「モバイル環境」の設定は、他の環境設定と同様にユーザ単位で行えますし、グループ単位やコンピュータリスト単位でも設定できます。

・「モバイル環境」の環境設定
http://homepage.mac.com/htabata/MXS10.3/img/WGM_MCX/WGM_MCX_Mobile01.png

 設定しただけではまだモバイルアカウントは実際には作成されません。「モバイル環境」の「同期」を設定したアカウントを使ってコンピュータにログインすると、このとき自動的にサーバ上のアカウント情報を使ってローカル上にもアカウントが作成されます。
 「同期」の設定をしたときに、「モバイルアカウントを作成する前に確認を要求する」もチェックしておくと、ログイン時に実際にモバイルアカウントを作成するかどうかを選択することが出来ます。
 
 モバイルアカウントはクライアント上でも設定可能です。ネットワークユーザとしてログイン中に「システム環境設定」の「アカウント」を使ってモバイルアカウントの設定を行うこともできます。
 さらに、Windows ServerのActive Directoryで管理しているユーザを使ってモバイアカウントを作成することもできます。
 
 いずれかの方法でモバイルアカウントを作成すると、あとはコンピュータをネットワークから切り離しても同一のアカウントを使用し続けることができます。それでは次回はモバイルアカウントのホームの扱いについて解説します。
つづく                                

小池邦人のCarbon視点でCocoa探求(2007/08/21)

〜 Cocoa新規プロジェクトの中身 〜

今回は、テンプレートから作成した「Cocoa Application」と「CocoaDocument-based Application」の新規プロジェクトフォルダの中身を、Carbonプロジェクトの場合と比較しながら調べてみることにします。

まず最初に、Cocoa Applicationプロジェクトの内容を調べてみます。新規作成したプロジェクトの名称は「Cocoa_Test」とします。これにより、プロジェクトに必要なファイルは、すべてCocoa_Testフォルダ内に保存されます。

Cocoa_Test.xcodeprojはプロジェクトファイル(ドキュメント)自身です。これをダブルクリックすることでXcodeが起動し、対応するプロジェクトウィンドウがオープンされます。Buildフォルダには、登録ファイルのリンク関係、コンパイル後のオブジェクトファイル、Makeされた実行ファイル(アプリケーション自身)などが保存されることになります。このフォルダは削除しても、次回にプロジェクトをオープンする時に再度作成されます。よって、プロジェクトに登録しているファイルのリンク関係が壊れてMake時にエラーが出るような場合、このフォルダを削除してやれば直ることがあります。

Cocoa_Test_Prefix.pchファイルはプリコンパイルされるソースファイルであり、一般的にはプリコンパイルしておきたいヘッダファイルを記述しておくのが普通です。Carbonのデフォルト記述は#include ですが、Cocoa_Test_Prefix.pchでは以下のように記述されています。

#ifdef __OBJC__
   #import 
#endif


これにより、Cocoa.hの内容がプリコンパイルされることで、2回目からのLink処理の速度を上げることが出来ます。不思議なことに、Carbonの場合にはビルドオプションのコンパイラ設定で「プレフィックスヘッダをプリコンパイルする」オプションをONにし、「プレフィックスヘッダ」に、そのファイル名(例えばCaarbon_Test_Prefix.pch)を記述しておかないとダメなのですが、Cocoaプロジェクトでは、そのオプションはOFFのままでファイル名も記述されていません。しかし、これでもちゃんとプリコンパイルされているようなのです?謎ですね。

ところで、Cocoa.hの中身は以下のような記述となっています。

#import 
#import 
#import 


このためプロジェクトのFrameworksグループには、ヘッダ名に準拠した4つの
Framework
(Cocoa.framework,AppKit.framework,CoreData.framework,Foundation.frame
work)が登録されています。

もし、ソースコード内でQTKitやQuartzComposerなどの最新機能を使いたい場合には、プロジェクトにそれらを含むFreameworkを追加登録し、ソースファイルの必要箇所に関連ヘッダファイルを記述しておく必要があります。例えば、QTKitを使いたい時は、Xcodeのプロジェクトメニューの「プロジェクトに追加…」でプロジェクトのFrameworksグループにQTKit.frameworksを登録し、それを必要とするソースファイルの先頭には#import を記述します。ちなみに、こうしたFrameworkが保存されている場所は、システムフォルダに含まれるライブラリフォルダ内のFrameworksフォルダ内です。

English.lprojフォルダの内部には、InfoPlist.stringsとMainMenu.nibの2つのファイルが含まれています。InfoPlist.stringsは、アプケーション情報のローカライズされた文字列が記述されています。ディフォルトでは、以下のようにアバウト表示に用いるコピーライトのみが含まれています。

NSHumanReadableCopyright = "  __MyCompanyName__, 2007";

この文字列の内容を変更すると、アバウトに表示される文字列も自動で切り替わります。余談ですが、Carbonの場合には、何故だかこの文字列がアバウトに表示されません。バグでしょうか?

MainMenu.nibは、アプリケーションで用いられるメインNibファイルです。Carbonプロジェクトのmain.nibと同じ意味合いを持っています。このNibファイルの内容については次回に詳しく解説したいと思います。

English.lprojフォルダには英語にローカライズされた文字列ファイルやNibファイルを保存しておきます。別途日本語用ローカライズファイルを用意した時には、Japanese.lprojフォルダを作り、その中に必要なファイルを入れておきます。こうしたフォルダは、その後アプリケーション・パッケージのResourcesフォルダ内に複製されることになります。また同様に、アプリケーションで用いるアイコンや画像ファイルもResourcesフォルダに複製されますので、最終的にパッケージのResourcesフォルダには相当数のファイルが保存されるケースが出てきます。

こうしたことから、筆者は、先んじてプロジェクトフォルダ(今回はCocoa_Testフォルダ)内にResourcesフォルダを作り、その中にEnglish.lprojを入れてプロジェクトに再登録しています。同様にJapanese.lprojフォルダやアイコン、画像ファイルを使う時も、そのResourcesフォルダに保存しておきます。こうすれば、パッケージのResourcesフォルダ内に保存されるファイルは、すべてプロジェクフォルダのResourcesフォルダ内と一対一で対応していることになり、プロジェクトのファイル構成が分かり易くなります。

info.plistは、作成するアプリケーションに必要な各種情報が記載されているXMLファイルです。この内容は、プロジェクトウィンドウのターゲットアイコン(Cocoa_Test)をダブルクリックすることで表示される「ターゲット”Cocoa_Test”の情報」パネルの「プロパティ」タブに示される内容と同等です。ですから、info.plistを編集する必要がある場合には、直接ではなくこちらのパネル経由で操作すれば良いことになります。

main.mは唯一のソースファイルです。Objective-C用ソースファイルの拡張子は.cではなく.mである必要があります。記述内容は、以下の通りで、main()でNSApplicationMain()を呼び出しているだけです。

int main(int argc, char *argv[])
{
   return NSApplicationMain(argc,  (const char **) argv);
}


Carbonで言えば RunApplicationEventLoop()を呼び出しただけのような感じですね。しかし、Carbonアプリケーションの場合にはそれだけでは何も起こりません。メニュー用のNibファイルを呼び出したり、アプリケーション用のCarbon Event Handlerを登録したりする必要があります。また、main.nibに登録されているウィンドウを実際にオープンするためにも、それなりの手続きを記述してやる必要があります。

それと比較してCocoaの場合には、これだけの記述でMainMenu.nib内の各オブジェクトをインスタンス化し、適切なイベントコマンドとアクションのリンクまで行います。その結果としてNibファイルに登録されているウィンドウがオープンされ、メインメニューに記述されてるコマンドも認識されるアプリケーションが完成します。つまりCarbn用のプロジェクトのmain.cに記述されている処理内容を、すべてCocoa Framework側が受け持ってくれていると考えれば良いわけです。

続いてCocoa Document-based Applicationプロジェクトの方を調べてみます。新規作成したプロジェクトの名称は「Cocoa_Doc」とします。CocoaApplicationプロジェクトとの違いは、English.lprojフォルダ内にCredits.rtfとMyDocument.nibが追加されていることです。Credits.rtfにはアバウト表示での追加情報が記載されており、MyDocument.nibには、ドキュメントとしてオープンさせるべきウィンドウなどのオブジェクトが登録されています。また、MyDocumentクラス(NSDocumentクラスを継承)を記述した、MyDocument.hとMyDocument.mの2つのソースファイルも追加されています。プロジェクトフォルダ内の違いはたったこれだけです。

CocoaアプリケーションでのNibファイルの役割は、Carbonのそれとは大きく異なります。Cocoa Frameworkを用いると、ソースコードをあまり記述しなくても色々な処理がこなせるようになります。その理由のひとつがNibファイルの仕組みにあります。次回は、今回登場した2つのNibファイル、MainMenu.nibとMyDocument.nibの内容を詳しく調べてみたいと思います。
                                
つづく

ターミナルの向こうから      第8回  海上 忍

〜 MacでLaTeXを使うメリットとは・LaTeX編その2 〜

前回は、ASCII日本語TeX(てふ/てっく)(pTeX)の導入までを説明しました。今回はLaTeX編の第2回、TeXShopなどのツールを利用したLaTeX文書の作成方法を紹介します。

・道具を揃える — TeXShop編 –
 LaTeXの文書を作成するときには、テキストエディタを利用します。LaTeX文書そのものはプレインテキストですから、書体の変更などデザイン機能は必要ありません。Mac OS X備え付けのテキストエディットでも十分に対応可能です。

 しかし、LaTeXはWYSIWYGな編集機能を持たないため、書き終えたあとタイプセット(文書のコンパイル)を実行する必要があります。Mac OS Xの場合、Terminal.appなどの端末ソフトでコマンドを実行することがオーソドックスな方法ですが、タイプセットを頻繁に実行するようになると、その作業が煩わしくなってきます。

 そんなとき便利に使えるアプリケーションが「TeXShop」です。テキストエディタとしての基本的な機能のほか、[タイプセット]ボタンをクリックすればタイプセットとプレビューを一括処理できるなど、LaTeX文書のいわばIDEとしての機能を備えています。環境(\begin{ }〜\end{ })など予約語は色分けして表示されるので、LaTeXの命令と本文を一目で区別できます。マクロ機能など拡張性も備えているので、LaTeXビギナーはもちろん”TeXニシャン”にもお勧めです。なお、TeXShopにTeXの処理系は含まれないため、前回紹介したpTeXパッケージのインストールが利用の条件となることに注意してください。

URL=http://www.uoregon.edu/~koch/texshop/

 どれだけ簡単にLaTeX文書を作成できるか、実際に試してみましょう。まずはTeXShopを起動し、環境設定パネル左下にある設定プロファイルで「pTeX(Shift JIS)」を選択、[OK]ボタンをクリックしたあとTeXShopを再起動してください。これで日本語(SJIS)を含むLaTeX文書を扱えるようになります。

 そのあと、以下のLaTeX文書をコピーし、TeXShopの画面へペーストしてください。その後[タイプセット]ボタンをクリック(新規作成ファイルは要保存)すると、TeX→DVI→PDFの順にタイプセットが実行され、美しい数式を含むPDFが表示されるはずです。

- - - - -
\documentclass{jarticle}

\begin{document}
これはp\LaTeXe{}で作成した文書です。
二次方程式($ax^2+bx+c=0$)の解の公式も、こんな感じで
出力できます。きれいでしょ?
\[x=\frac{-b\pm \sqrt{b^2-4ac}}{2a}\]
\end{document}
- - - - -


・日本語の扱いとMac OS Xならではの事情
 数式の出力など独特の得意分野を持つLaTeXですが、日本語フォントの扱いにはいくつかの制限があります。本格的に取り組む前に、フォントについてはある程度覚悟してください。

 まず1つは、フォント種の少なさ。ASCIIが開発した日本語TeX(pTeX)および日本語LaTeX(pLaTeX2e)では、利用できるフォントはデフォルトでは明朝体(リュウミンL-KL)とゴシック体(中ゴシックBBB)のみです。他のフォントを使用することは可能ですが、pTeX/pLaTeX2eの仕様では、基本的に1つの文書に2種以上の日本語フォントを含めることを想定していません。有志ユーザが作成したフォント拡張パッケージを利用すると、同時に4〜5種のフォントを扱えるようになりますが、ワープロソフトほどの自由度は期待しないほうがいいでしょう。

 Mac OS Xの場合、システムそのものがPDFと親和性が高いことから、LaTeX文書の最終出力にPDFを使うことが好まれますが、その結果DVI→PDFコンバータ「dvipdfmx」の仕様による制限を受けます。PSTricks(直接PostScriptの命令を使うことで曲線など豊かな表現を可能にする拡張パッケージ)に対応しないことは、個人的には惜しまれる点です。PDFで使う日本語フォントを変更するときには、/usr/local/share/texmf/fonts/map/dvipdfm/base/ディレクトリ以下にある設定ファイルを書き換える必要があるなど、UNIX剥き出しな点に拒否反応を示す人も多いかもしれません。

・道具を揃える — YaTeX編 –

 Mac OS XでLaTeX文書を作成するときのツールは、前述したTeXShopもお勧めですが、Carbon Emacsでyatex(やてふ/野鳥)を使う、という手もあります。まずは、ネットワークに接続した状態で、Carbon EmacsからHelp→CarbonEmacs Package→Net Install→YaTeXを実行してください。インストールを確認するダイアログで[Yes]をクリックしたあと、「Installation done」と表示されれば準備完了です。

 もう紙幅も残り少なくなってきたので、使い方を少しだけ。YaTeXを起動(YaTeXモードの開始)するには、Carbon Emacsを再起動後、M-x yatex
([ESC]に続けて[x]を押し、yatexと入力後[Enter])と入力すればOK。これで、メニューバーに「YaTeX」の項目が追加されたはずです。どのような便利な使い方ができるかは、次回紹介する予定です。

◇MOSAからのお知らせと編集後記は割愛します◇

 

 MOSA Developer News   略称[MOSADeN=モサ伝]
        配信停止 mailto:mosaden-ml@mosa.gr.jp
 記事内容に関するご意見 mailto:mosaden-toukou@mosa.gr.jp
      記事投稿受付 http://www.mosa.gr.jp/?page_id=850
Apple、Mac OSは米国アップル社の登録商標です。またそのほかの各製品名等
はそれぞれ各社の商標ならびに登録商標です。
このメールの再配信、および掲載された記事の無断転載を禁じます。
特定非営利活動法人MOSA  http://www.mosa.gr.jp/
Copyright (C)2007 MOSA. All rights reserved.