MOSA Multi-OS Software Artists

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

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

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

2007-08-07

目次

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

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

  〜環境設定編〜

 前回は環境設定の優先順位について解説をしました。1つのパラメータしか設定できないような項目では、ユーザ/グループ/コンピュータリストの各レベルで環境設定を行った場合、ユーザレベルでの環境設定が最も優先され、グループレベルの環境設定の優先度が最も低くなります。
 コンピュータリストでは、1台のコンピュータを環境設定が可能な複数のコンピュータリストに重複して登録することはできません。ですので、ある1台のコンピュータに対して適用されるコンピュータリストレベルでの環境設定は1つしか存在しないことになります。
 しかし、グループの場合は事情が異なります。1人のユーザは複数のグループに所属することができます。ここで問題になるのが、複数のグループに所属していたときに、それぞれのグループで環境設定が行われた場合です。
 ユーザが複数のグループに所属していた場合でも、グループレベルの環境設定はどれか1つのグループ分の環境設定しか適用されません。ではどのグループの環境設定が適用されるかですが、このような場合には、ログイン時にログインウインドウにグループの一覧が表示されますので、ここでどのグループのメンバーとしてログインするかを選択します。
 環境設定のルールには「上書き」と「結合」がありましたが、ログイン時にグループを1つだけ選択しますので、いずれの場合でも1つのグループに対する環境設定だけが処理の対象になります。

 これで環境設定に関する基本的なルールの説明が終わりました。この後は、いくつかの環境設定の項目を詳しく解説していきたいと思います。

◇アプリケ−ション
 「アプリケーション」ではユーザが起動できる、あるいは起動できないアプリケーションを設定できます。アプリケーションを指定するには「追加…」ボタンをクリックし、任意のアプリケーションを選択しますが、ここでの設定は、管理対象となる環境に適用される設定であるということをよく覚えておいてください。
 サーバ上で「ワークグループマネージャ」を起動した場合、選択可能なアプリケーションは、サーバ上にインストールされているアプリケーションになります。もしクライアント環境にしかインストールされていないアプリケーションがある場合、これでは選択ができません。
 もちろんサーバ上にもアプリケーションをインストールすれば選択可能になりますが、設定を行うだけであれば必ずしもサーバ上でインストールをおこなう必要はありません。サーバではなくクライアントコンピュータ上で「ワークグループマネージャ」を起動すれば、クライアント上にインストールされたアプリケーションを選択することができます。

・「アプリケーション」の環境設定
http://homepage.mac.com/htabata/MXS10.3/img/WGM_MCX/WGM_MCX_App.png

◇ソフトウェア・アップデート
 Mac OS X Server v10.4では、新機能としてソフトウェア・アップデートのサーバをローカルネットワーク上に構築できるようになりました。この機能を利用すれば、各クライアントコンピュータはアップルが提供するアップデートサーバに直接アクセスしなくても、ローカルネットワーク上のサーバからアップデートをインストールできるようになります。
 ですが、いくらローカルにソフトウェア・アップデートのサーバを設置しても、それだけは各クライアントコンピュータは今までどおりアップルのサーバを参照してしまいます。クライアントコンピュータを特定のアップデートサーバにアクセスさせたい場合は、この環境設定でサーバを指定します。
 ソフトウェア・アップデートはシステム全体に関わる設定ですので、この項目を設定するときはコンピュータリストに対して設定を行うのが効果的でしょう。

・「ソフトウェア・アップデート」の環境設定
http://homepage.mac.com/htabata/MXS10.3/img/WGM_MCX/WGM_MCX_SU.png

◇ネットワーク
 Mac OS X Server v10.4から新たに追加された環境設定の項目です。この項目ではクライアントコンピュータが使用するプロキシサーバを設定することができます。

・「ネットワーク」の環境設定
http://homepage.mac.com/htabata/MXS10.3/img/WGM_MCX/WGM_MCX_Network.png

◇メディアアクセス
 「メディアアクセス」ではセキュリティ上便利な設定を行うことができます。
ここでは、「CD & CD-ROM」「DVD」「記録可能ディスク」それぞれに対するアクセスを制御できます。例えば、「記録可能ディスク」の「許可」を外しておけば、CD-RやDVDへの書き込みを禁止することができます。また「認証が必要」を設定することで、管理者のみにアクセスを許可することもできます。
 さらに「内蔵ディスク」「外部ディスク」についても同様の設定を行うことができます。

・「メディアアクセス」の環境設定
http://homepage.mac.com/htabata/MXS10.3/img/WGM_MCX/WGM_MCX_Media01.png
http://homepage.mac.com/htabata/MXS10.3/img/WGM_MCX/WGM_MCX_Media02.png

 それでは次回は「モバイル環境」について解説します。
                                つづく

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

〜 XcodeとInterface Builder 〜

今回からは技術的な内容にも踏み込むのですが、なにせ筆者はCocoa初心者です。何か間違いを書いていたら、ぜひメールでMOSA事務局へご連絡くださいませ。また、私の方で疑問点を取り上げることもあるでしょうが、その答えが判明した時には優先して提示したいと思います。「一人の疑問は全員の答え」「一人の間違いは全員の知識」という方針で連載を続けたいと思いますので(笑)ひとつよろしくお願い致します。

今回の開発で用いるXcodeは最新版のv2.4.1です。Leopard(Mac OS X 10.5)にはXcode v3.0が搭載される予定ですが、もうしばらくの間は、このバージョンとの付き合いが続くことになります。また、Cocoaプログラミングモデルでは、Carbon以上にnibファイルが重要な枠割を担います。そのファイルを作成、編集するためのInterface Builderの最新版はv2.5.4となっています。この2つのアプリケーションが、Cocoa Frameworkを用いるアプリケーション開発の「両輪」となります。

ところで、Xcodeの方はちゃんと日本語にローカライズされており、以下のサイトには日本語訳されたユーザーガイドも存在しています。また、日本語訳された関連ドキュメントも幾つか参照することが可能です。

「Xcode 2.3ユーザーガイド」

http://developer.apple.com/documentation/DeveloperTools/Conceptual/XcodeUserGuide/Contents/Resources/ja.lproj/index.html

「Xcodeを使った作業:将来に対応したアプリケーションの構築」

http://developer.apple.com/jp/tools/xcode/xcodefuture.html

「XcodeへのCodeWarriorプロジェクトの移植に関する概論」

http://developer.apple.com/jp/documentation/DeveloperTools/Conceptual/MovingProjectsToXcode/index.html

ところが「相棒」のInterface Builderの方は未だローカライズされていません。それどころか、英語版の正式ユーザーガイドさえ存在していないのが現状です(ですよね?)。アプリケーションで簡単なヘルプは参照できますが、それを見ながらの操作と言うのはさすがに辛いものがあります。そんな状態ですので「Interface BuilderはApple社内で開発されていないのではないか?」という噂もあるようですが(笑)兎にも角にも、Leopardではこうした状況を改善してもらわないと困ります。

それでは「どうやってInterface Builderの操作を習得すれば良いのか?」という問題になります。Cocoaで開発してみると、Carbonの時とは比べものにならないぐらいInterface Builderに依存した操作や処理が発生することが分かります。そのため、Cocoaでのプログラミングを解説したドキュメントには
「逐次」Interface Builderの操作方法が記述されています。つまり、Interface Builderの操作方法は、Cocoaのプログラミング解説書の方でカバーされているわけです。Apple社も、そうした状況を見越して、InterfaceBuilder自身のドキュメントに関しては手を抜いているのかもしれません…。

さて、まずはXcodeを起動しましょう。ファイルメニューから「新規プロジェクト…」を選択すると、アシスタントから空プロジェクトのテンプレート
(新規雛形)を選ぶことが可能になります。プロジェクトの種類を大きく分類すると、Action、Application、Audio Units、Bundle、Command LineUtility、Dynamic Library、Framework、J2EE、Java、Kernel Extention、Standard Apple Plug-ins、Static Libraryの12種類です。このうち今回の開発は「Application」が対象ですので、全部で13種類のテンプレートの中から目的に合ったものを選択することになります。

テンプレートを選ぶと、ダイアログの下にその目的の解説が表示されるのですが、残念ながらその部分は日本語訳されていません(手抜き)。Carbonなら「Carbon Application」「Carbon C++ Application」「Carbon C++ Standard
Application」の3種類から選択します。Cocoaであれば「Cocoa Application」
と「Cocoa Document-based Application」を含め、全部で7種類の中から選択します。筆者がCarbonアプリケーションを開発している時には「CarbonApplication」を利用していました。C++も使っていないという所がミソでして(笑)CarbonとピュアCから突然CocoaとObjective-Cへ移行するとどうなるのか?アプリケーションのソースコードを比較することで色々と面白いことが判明しそうです。

筆者には両者の区別が分からないのですが、C++に関しては「CarbonC++Application」と「Carbon C++ Standard Application」の2つのテンプレートが用意されています。このテンプレートで作成したプロジェクトファイルを見ると、「Sources」グループ中に「HIFramewrok」というファイル群が登録されていることが分かります。これは、Apple社がよりモダンなCarbonプログラミングモデルを提供するため用意したFrameworkです。具体的には、Carbonに導入されているCarbon EventやHIViewなどの仕組みと、C++(OOP環境)との親和性を高めるために使われています。

現在、クロスプラットフォーム向けにアプリケーションを開発するとすれば、やはりC++と何かしらのFrameworkを使うことになるでしょう。HIFramewrok
も、その一手段として重要な意味を持っていたと思います。ところが、この
HIFramewrokの中で使われているのは、「64bit化しませんよ」と宣言された
Carbon APIがほとんどです。つまり、64Bitアプリケーションの開発では利用できなくなるのです。このように、自ら開発の選択肢を消してしまうのは、何とももったいないような気がするのは筆者だけでしょうか?

さて、Cocoaアプリケーションを開発するプロジェクトテンプレートを選択しましょう。とりあえず、Cocoa-JavaとCore Dataベースのアプリケーション(機会があれば後でチャレンジします)を選択から外すと、残りは「CocoaApplication」と「Cocoa Document-based Application」のどちらかになります。「Cocoa Document-based Application」は、ワープロソフトのようにユーザが作成したドキュメントをファイルに保存するタイプのアプリケーションがターゲットです。もう片方の「Cocoa Application」は、それ以外のタイプということになりますが、せっかくなので、今回は両方のプロジェクトを作成して比較してみたいと思います。

アシスタントから目的プロジェクトを選び、「次へ」ボタンをクリックしてプロジェクト名を入力して「完了」ボタンを押します。これで指定したディレクトリにプロジェクト名が付いたフォルダが作成され、その中に開発で必要な「材料一式」(ソースファイルやnibファイルなど)が保存されます。プロジェクト名は、幾つかのファイル名やアプリケーション名に使われますので(後から変更可能)、最初から適切な名称を選んでおいた方が良いでしょう。また、プロジェクト名は日本語でもかまいません。

次回は、今回作成した「Cocoa Application」と「Cocoa Document-based
Application」のプロジェクトフォルダの中身を、Carbonプロジェクトの場合と比較しながら調べてみることにします。
つづく
                                

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

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

 大学や研究機関にユーザが多いLaTeXですが、筆者はプログラマにもその便利さを知ってほしいと考えています。ようやくここまで辿り着きました、LaTeX編の第1回です。

・人は何故LaTeXを使うのか
 文書をつくるとき、ベースとする”ひな型”があれば便利なことは、誰しも理解できるはず。顧客に送る案内状にしても、拝啓から始まり時候の挨拶、要件を記述したあと敬具で締める、という流れを毎回繰り返すのは効率的ではありません。顧客の名前や日付を変えるだけで使い回しできることこそ、コンピュータによる文章作成の利点といえるでしょう。

 そのような作業にもってこいの文章作成環境が、今回紹介する「LaTeX」です。著書The Art of Computer Programmingでも知られるDonald E. Knuth博士が開発した組版処理ソフト「TeX」を利用した、いわばマクロプログラム集ですが、商業出版に利用される(筆者も数冊ほどLaTeXで組版した本を出した経験があります)ほど高品質です。TeXネイティブの命令(通称プリミティブ)より理解しやすく、機能の拡張など管理が容易という理由でも、LaTeXが好まれています。

 LaTeXは、いわゆるマークアップ言語の一種で、2つのタグの間にテキストなどのコンテンツを配置して文書をつくりあげることが基本です。HTMLの直書きをイメージすると、わかりやすいかもしれません。WYSIWYGの対極にある文章作成スタイルですが、体裁はプレインテキストであり、ソフトのバージョンアップに動じることはありません。Perlなどテキストの扱いに長けたスクリプト言語を利用し、宛名印刷に活用することも可能です。実際、筆者は長年LaTeX + Perlで年賀状の宛名印刷を行っています。

・LaTeXのサンプルを見る
 では、なぜLaTeXは一般ユーザのレベルに浸透していないのでしょう? 答えは単純、いわゆるワープロソフトのようなインターフェイスを持たないからです。しかし以下のサンプルをご覧いただければ、その便利さの片鱗を理解していただけることと思います。

 かんたんに内容を説明してみましょう。まず、\begin{document}と\end
{document}に注目してください。この2つのタグで囲まれた範囲が「本文」で、ここに文書のコンテンツを記述します。\begin{ }〜\end{ }のセットは「環境」と呼ばれ、図版を表示するpicture環境、文を中央揃えにするcenter環境など、覚えきれないほどの環境がLaTeXには用意されています。以下のサンプルでは、4行目から10行目が本文(document環境)となります。

 6行目では、\title命令を実行し、文章のタイトル(MOSA伝)を設定しています。7行目の\date命令は、日付を出力します。どちらも文書を装飾するための命令で、\maketitle命令が記述された位置(通常は先頭ページ)に出力されます。環境と同様、LaTeXには多くの命令が用意されています。

 document環境に含まれない1行目から2行目は、「プリアンブル」と呼ばれる文書のお膳立てを行うエリアです。1行目では文書クラス(横/縦組、用紙サイズで分類)を指定し、2行目ではマクロパッケージのascmac(サンプルではダミーで使用しています)を読み込んでいるわけですが、イメージとしてはObjective-Cでいうところの「#import 〜」と同じです。LaTeXには膨大な数のマクロパッケージが用意されていますし、同様の方法でひな型(スタイルファイル)を呼び出すこともできます。

 そろそろお気づきかもしれませんが、TeX/LaTeXでは命令が「\」から開始されます。{ や }は特殊文字と呼ばれ、\と同様にそのままでは出力できません。ほかにも、連続するスペースは1つとして扱われるとか、改行文字とスペースだけの行は段落の終わりを意味するとか、約束事はたくさんあります。それこそ書籍が数冊書けてしまうほどの情報量がありますので、興味があれば入門書の購入をお勧めします。

- - - - -
1: \documentclass{jarticle}
2: \usepackage{ascmac}
3:
4: \begin{document}
5:
6: \title{MOSA伝}
7: \date{2007年8月14日}
8: \maketitle
9:
10: \end{document}
- - - - -

・LaTeXの導入
 LaTeXの文書処理系は、TeX/LaTeXの実行ファイルのほか、各種フォントやLaTeXのマクロなど多数のファイルで構成されます。ソースコードはすべて公開されているので、UNIX系OS向けの配布用パッケージ「TeTeX」にASCIIが提供する日本語化パッチ「pTeX」を当ててコンパイル、といった手順でインストールしますが、有志が作成したバイナリパッケージを利用させていただくほうがいいでしょう。

 ここでは、熊本学園大学の小川弘和氏が配布中のパッケージを紹介します。以下のURLにアクセスし、pTeX(sjis) + JMacoros package for MacOSX(ppc/intel)の項目から約180MBのディスクイメージをダウンロードしてください。インストールはかんたん、ディスクイメージをマウントすると現れるパッケージ(big-ptex.pkg)を開き、インストーラで処理するだけです。パッケージに含まれるコマンド群は/usr/local/binにコピーされるので、連載第3回で解説したパスの設定が完了していれば、作業は完了です。

http://www2.kumagaku.ac.jp/teacher/herogw/

 次回は、Carbon Emacs上でyatexを使うなど、”LaTeXの敷居”を下げるための情報を紹介する予定です。

◇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.