MOSA Multi-OS Software Artists

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

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

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

2007-11-20

目次

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

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

  〜Leopard Server Setup編〜

 前回はLeopard Serverのインストールについて解説しました。今回はセットアップについて取り上げたいと思います。

◇サーバ構成
 Leopard Serverではセットアップのやり方がTiger Serverと少し変わりました。一番の違いは3種類のサーバ構成を選択してセットアップをおこなうということです。具体的には次の3種類から選択します。

「サーバ構成」
・標準
・ワークグループ
・詳細

 もちろんそれぞれに違いがあるのですが、サーバ構成によってセットアップ後のサーバ管理のやり方が違ってきますので、まずはその話をしておきましょう。ちょっと話が横道にそれてしまいますが、あらかじめ状況を把握しておかないと、最悪の場合再インストールということにもなりかねませんのでしばしおつきあいください。

◇サーバ管理ツール
 サーバ構成によって具体的にどのような違いがでるかというと、まず重要なのがサーバの管理ツールです。これまでMac OS X Serverは主に「サーバ管理」と「ワークグループマネージャ」の2つのツールを利用してサーバ管理をおこなってきました。これまで、それぞれの管理ツールの主な役割は次のとおりでした。

「Tiger Serverでのサーバ管理ツール」
サーバ管理:サービスの設定/監視
ワークグループマネージャ:共有ポイントの設定、アカウント管理、環境設定

 役割が変わった部分もありますが、Leopard Serverでもこれらのツールは用意されています。さらにLeopard Serverでは新しい管理ツール「サーバ環境設定」が追加されています。「サーバ環境設定」は、「サーバ管理」と「ワークグループマネージャ」の役割を統合したような管理ツールです。このツールを使えばアカウントの管理およびサービスの管理/監視をおこなうことができます。
 なぜ同じ役割をもった管理ツールがあるかというと、「サーバ環境設定」では設定項目が必要最低限のものに絞り込まれており、非常にお手軽にサーバ管理ができるようになっているのです。ちょうど「システム環境設定」でシステムの設定をするのと同程度の感覚でサーバ管理ができます。
 細かな管理をする場合は「サーバ管理」や「ワークグループマネージャ」を使う必要がありますが、小規模なシステムでサーバの使用目的も限定されているのであれば、「サーバ環境設定」を使って必要最低限の操作でサーバ管理ができます。

 ここまで説明しただけでは、なんだ新しいツールが増えただけかということになりますが、ここからが少し厄介な話になります。この「システム環境設定」はサーバ構成を「標準」または「ワークグループ」にしたときにしか使用することが出来ません。また、新規インストールではなく、古いバージョンのMacOS X ServerからLeopard Serverにアップデートした場合には自動的に「詳細」構成になりますので、この場合は「システム環境設定」は利用できません。
 「標準」「ワークグループ」構成の場合でも、「サーバ管理」と「ワークグループマネージャ」は使えてしまいます。ただし、「サーバ管理」を起動すると問題が発生する可能性があるとの警告が表示されてしまいます。「サーバ環境設定」と「サーバ管理」を併用すると問題が発生する可能性があるということです。まとめますと、サーバ構成による管理ツールの違いは次のようになります。

「標準」「ワークグループ」>サーバ環境設定
「詳細」>サーバ管理、ワークグループマネージャ

 「標準」および「ワークグループ」はいつでも「詳細」構成に変換できますので、必要になった時点であとから「詳細」構成に移行することはできます。ただし逆の変換はできませんので注意が必要になります。

◇「標準」と「ワークグループ」
 では「標準」と「ワークグループ」の違いはなんなのかですが、「標準」はサーバを1台だけ設置するケースを想定しています。つまり1台のサービスでいろんなサービスを動かしてしまおうということです。実際「標準」構成では主要なサービスが自動的に設定されます。
 「ワークグループ」ですが、こちらはすでにディレクトリサーバが存在しているような環境で、追加のサーバ(たとえばファイルサーバ)を設置するような場合を想定しています。ユーザ管理は引き続き既存のディレクトリサーバでおこない、「ワークグループ」では別のサービスを提供するといったケースを想定しています。

 一方「詳細」は特に使用目的を限定しているわけではなく、各種サービスを自由にかつ細かく設定していくような場合に適しています。

 というわけで今回はサーバ構成の話だけで終わってしまいましたが、この部分はLeopard Serverで新しく追加された部分ですので、あらかじめしっかりと理解しておくことが重要です。もし時間があるようでしたら、それぞれのサーバ構成で実際にセットアップをおこない、違いを確認してみるのもよいでしょう。それでは次回は「標準」構成を選択した場合の実際のセットアップ方法について解説する予定です。
                             次回へつづく

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

〜 Leopardの開発環境 〜

嬉しい事に、予定通りにLeopard(Mac OS X 10.5)が販売開始となりました。既にMac OS X 10.5.1アップデータも登場し、ユーザの間ではTigerからの切り替えが迅速に進んでいるようです。今回からは、実施にObjective-Cのソースコードを記述しようと考えていたのですが、Mac OS X 10.5 の「XcodeDeveloper Tools」の変更点があまりにも多いので、開発方針を決めるため、まずはそれらをまとめてみる事にしました。

最新の開発環境「Xcode Developer Tools」をインストールすると、お馴染みのXcodeとInterface Builderに加え、WWDC2007ではXRayと呼ばれていたパフォーマンス解析ツールが「Instruments」と言う名称で保存されます。また、XcodeとInterface Builderもそれぞれ3.0へとバージョンアップがなされています。Mac OS X 10.5の開発環境が以前からどう変更されたかについては、Developerフォルダに保存されている「About Xcode Tools.pdf」に詳細が記されています。

上記3つのアプリケーションがソフト開発での三本柱となるわけですが、とりあえず新顔のInstrumentsは横に置いておいて(必要時には解説する予定)、Interface Builder 3.0が、以前とはまったく違うアプリケーションに「変身」していることにビックリします。あまりにも違うので、今まで出版されてきたCocoa入門書のInterface Builderの操作箇所は、全面書き換えが必要になるのではないでしょうか?

以下に、Apple社のデベロッパーサイトに登録されている開発ツールに関係する最新ドキュメントを紹介しておきます(Mac OS X 10.5登場で更新)。Xcode 3.0のユーザーズガイドには日本語訳が用意されています。そして、やっとこさ(笑)Interface Builderのユーザーズガイドが登場しました。Mac OS X10.5から利用できるようになったRubyCocoaに興味がある方は、「Ruby andPython Programming Topics for Mac OS X」を参照してください。

「Xcode User Guide」(日本語訳あり)

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

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

「Interface Builder User Guide」

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

「Introduction to Instruments User Guide」

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

「Ruby and Python Programming Topics for Mac OS X」

http://developer.apple.com/documentation/Cocoa/Conceptual/RubyPythonCocoa/index.html

「Debugging with GDB」
http://developer.apple.com/documentation/DeveloperTools/gdb/gdb/gdb_toc.html

それ以外にも、今回の連載に関係がありそうなCocoaやCarbonの変更箇所をピックアップしてみましょう。

・Objective-C 2.0が採用された(Cocoa)
・Cocoaフレームワークが64Bitアプリケーション対応となった(Cocoa)
・画像操作用としてImageKitが新しく搭載された(Cocoa)
・QTKitが大幅に機能強化された(Cocoa)
・アニメーション操作に用いるCore Animationが搭載された(Cocoa)
・テキスト描画用APIとしてCore Textが搭載された(Carbon)
・Finderなどで使われるQuick Look用Plug-inが作成可能になった(Carbon)

最初の「Objective-C 2.0」ですが、待望のガベージコレクションをはじめ、インスタンス変数への簡易アクセスやFast Enumerationの搭載など、幾つか新機構が採用されています。それに伴い、Core Animation Frameworkでは2.0準拠のインスタンス変数へのアクセス方法が全面的に取り入れられています。以下は、Mac OS X 10.5用に改訂されたObjective-C 2.0や、それに関係するCocoaプログラミングについてのドキュメント一覧です。すべてPDFファイルも用意されています。皆さん、予習しておいてください(笑)

「The Objective-C 2.0 Programming Language」

http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/index.html

「Cocoa Application Tutorial」

http://developer.apple.com/documentation/Cocoa/Conceptual/ObjCTutorial/index.html

「Garbage Collection Programming Guide」

http://developer.apple.com/documentation/Cocoa/Conceptual/GarbageCollection/index.html

「Memory Management Programming Guide for Cocoa」

http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/index.html

「Exception Programming Topics for Cocoa」

http://developer.apple.com/documentation/Cocoa/Conceptual/Exceptions/index.html

「Object-Oriented Programming with Objective-C」

http://developer.apple.com/documentation/Cocoa/Conceptual/OOP_ObjC/index.html

「Model Object Implementation Guide」

http://developer.apple.com/documentation/Cocoa/Conceptual/ModelObjects/index.html

「Cocoa Scripting Guide」

http://developer.apple.com/documentation/Cocoa/Conceptual/ScriptableCocoaApplications/index.html

本連載の開発でもObjective-C 2.0を全面採用することにします。ついでに64Bit化作業も行いましょう(こちらは簡単)。つまり、開発したアプリケーションはMac OS X 10.5以降でないと起動できなくなりますが、まあ完成品を一般ユーザに販売するわけではないので良しとしましょう(笑)。そうであれば、Mac OS X10.5以降でしか使えない、ImageKitやCore Animationなどの最新機能も心置きなく使えます。今のところ、Core Animationについては、それを活用できる状況に遭遇するかどうかは分かりませんが(無理矢理作るのもアリ)、ImageKitに関してはすぐさま活用できそうです。

ImageKitは、Quartz 2D、Core Image、Core Animation、OpenGL、ImageI/Oな
どの能力を十二分に活用したハイエンドCocoaクラスです。これを活用することで、頻繁に画像を取り扱わなくてはいけない開発者の手間を大きく省いてくれます。以下に、ImageKitの機能一覧を示しておきましょう。

・画像イメージの表示と編集(IKImageView)
・画像イメージのカラーやガンマ、エフェクト編集用パネル表示(IKImageEditPanel)
・複数画像を表示するためのブラウザ表示(IKImageBrowserView)
・画像のスライドショー表示の実行(IKSlideshow)
・iSightやデジカメからの画像(サムネイル)の取り込み(IKPictureTaker)
・画像保存用のフォーマットとオプションの選択(IKSaveOptions)
・Core Image用「Filter Browser」と「Filter User Interface View」をサポート

次回からは、新しいXcodeとInterface Builderを起動して、テンプレートから作成した「Cocoa Application」や「Cocoa Document-based Application」を拡張していく開発作業に入りたいと思います。
つづく                                

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

〜 ドキュメントに使う図のつくりかた その1 〜

 前回は作図ツール「Graphviz」を紹介しましたが、その応用範囲の広さを考えると、Doxygen経由で利用するだけでは惜しいというものです。今回は、再びGraphvizを中心にドキュメントで使う図のつくりかたについて解説します。

・文章だけでなく図も重要
 ドキュメントというものは、自分のために書くものではありません。確かに備忘録という存在はありますが、それはあくまで忘れないための書き置きであって、他人にとっての読みやすさは二の次です。極端な話、日本語としての文法が破綻していても支障はないでしょう。しかし他人にある事柄を理解してもらおう、自分の考え方を伝ようとすると、事情は変わってきます。
 そんなとき役に立つのが「図」です。百聞は一見にしかずという言葉がありますが、冗長な文章より簡潔な図のほうが効果的なことは多々あります。本文と直接関係のない挿絵の類はともかく、読者の理解を助ける図の力はぜひ活用すべきでしょう。
 図にはいくつかの種類があり、比較的かんたんに作成できるのが「スクリーンショット」。これはOS標準の機能を利用するもよし、SnapzProのようなツールを使うもよし。敢えて説明するまでもないでしょう。もう1つが「絵解き」。いわゆるイラストで、抽象的な概念を伝える用途に大活躍しますが、作り手に絵心を要求することが難点です。
 そしてもう1つ、開発関連のドキュメントに必須と思われるのが「ダイアグラム」。出来合いの部品をペタペタと並べ線でつなぎ、要所要所に文字を入力する程度で完成するので、フローチャートのような図をつくる用途に最適です。絵が下手でも描ける、ここがもっとも重要かもしれません。MacならばOmniGraffle、WindowsならばVisioが代表的なダイアグラム作成ツールといえるでしょうか。ところで、OmniGraffleは試用が可能ですから、未体験の方は一度お試しを。元NeXTな方、昔作った「Diagram!」のファイルも(互換性は完璧ではありませんが)開けますよ。

・だからこそGraphvizを使う
 すでにダイアグラム作成ツールを活用してらっしゃる方には、釈迦に説法のような話だったと思いますが、3つの問題点にお気付きですか? すなわち、機種依存があること、メンテナンス(バージョンアップなど)に手間がかかること、ファイルフォーマットがオープンでないことです。いずれも決して他人事ではなく、実際に筆者もDiagram!で作成した多数のファイルを死蔵しています(まだNeXTSTEP 3.3Jが現役稼働中なので深刻さはありませんが)。HTMLやTeX、あるいはプレインテキストのように、普遍的かつオープンなフォーマットのほうが望ましいのではないでしょうか。
 そこで改めて注目したいのが「Graphviz」。前回は、ごくかんたんなサンプルを紹介しましたが、以下のURLにあるサンプルを見ればお分かりいただけるように、OmniGraffleやVisioで作成するようなダイアグラムも作成可能です。前回はサンプルを提示しただけで終わりましたが、今回は具体的な解説を行いたいと思います。

http://www.graphviz.org/Gallery.php

・ダイアグラムの基本形
 Graphviz(DOT言語)では、ダイアグラムを構成するトポロジーを記述します。基本的な流れとしては、ダイアグラムの形状を決定するキーワード(有向=digraph、無向=graph)を宣言したあと、{ … }の中にノードのつながりを列挙する、という形になります。以下のサンプルは、charAからcharBとcharCが派生し、うちcharBからcharDが派生する、という有向ダイアグラムです。

- - - - -
digraph {
   charA -> charB
   charA -> charC
   charB -> charD
}
- - - - -


・ノードの形状を決める

 この有向ダイアグラムに装飾を加えてみましょう。以下のサンプルは、デフォルトでは楕円(ellipse)に設定されているノードの形状を、2行目の記述によりcharBだけ五角形に変更しています。この文は、以降に記述されたノードに対して効果を生じるため、3行目以前に記述しておく必要があります。なお、ノードの形状についてはこちら
http://www.graphviz.org/doc/info/shapes.html
のURLを参照してください。

- - - - -
1: digraph {
2:  charB [ shape = pentagon ]
3:  charA -> charB
4:  charA -> charC
5:  charB -> charD
6: }
- - - - -


 デフォルトのノードの形状を変更することもできます。「node [ shape =**]」と記述すると、以降記述されるノードすべてに適用されるため、さきほど指定した五角形のcharB以前に挿入します。以下のリストでは、charBを除くすべてのノードの形状をたまご型に設定しています。

- - - - -
1: digraph {
2:  node [ shape = egg ]
3:  charB [ shape = pentagon ]
4:  charA -> charB
5:  charA -> charC
6:  charB -> charD
7: }
- - - - -


 次回も引き続き、Graphvizを利用した作図の基本ルールを紹介する予定です。

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