MOSA Multi-OS Software Artists

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

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

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

2006-08-29
 

目次

  • MOSA理事コラム          第6回   佐藤 徹
  • 「「Wonderful Server Life」   第16回  田畑 英和
  • 小池邦人の「Carbon API 徒然草」
  • SqueakではじめるSmalltalk入門  第68回  鷲見 正人
  • ニュース・解説               木下 誠

MOSA理事コラム   第6回   MOSAオーディオブックのできるまで!
                  松木英一

 MOSAのメーリングリストでもお知らせしたことがあるので、ご存知の方も多いかもしれないが、MOSA湘南ミーティング2005の基調講演を収録したオーディオブックについて、その出来上がる過程をここでご紹介しておきたい。日本でオーディオブックという言葉が聞かれるようになったのは、2005年8月にiTunes Music Storeが日本でサービスを開始してからのことだ。iTunes Music Storeは、ご覧になってわかるように音楽だけをダウンロード販売しているだけではない。ショートムービーやミュージックビデオ、オーディオブックも取りそろえている。オーディオブックは、Audible(オーディブル)という音声コンテンツの著作権管理技術の開発企業が、iTunes Music Store経由で提供しているコンテンツである。

オーディオブックの基本形は、書籍として存在している「本」をアナウンサーや俳優等が朗読して音声ファイル化し、インターネットで配信されるものである。楽曲をダウンロードするかのように、音声ファイル化された「本」を入手するのだ。日本においても古くからソノシートやカセットやCDといった形で存在しているが、旧作や名作とされるものが中心で、ベストセラーのようなものはあまりない。海外ではつい最近も『ハリー・ポッター』がでたり、旧くはアップル社CEOであるSteve Jobsの評伝『The Second Coming of Steve Jobs』など、話題の本も多い。
 Audibleは、米国を中心に250社以上のコンテンツ企業と提携していて、新作の投入にも意欲的だ。もともと米国では、車で移動する機会が多いので、本を耳で聞くという需要が存在している。書店やレコード店などにも独立した売り場が確保されているほどだ。しかしオーディオブックが広く注目を集めるようになったのは、iPodを始めとする大容量の携帯用デジタル音楽プレーヤが普及しはじめてからだ。これで外出時にオーディオブックを持ち出すことが可能になり、通勤やスポーツをしながら聴くことが可能になった。なおiTunes Music Storeではオーディオブックも著作権管理技術“FairPlay”で保護されている。

さてMOSAらしいオーディオブックとは何だろうか? iTunes Music Storeの中を探してみても、パソコン系の技術書的なものは存在しないのだ。これは考えてみればきわめて奇妙な状況と言える。パソコンやiPodで聴いているにも関わらず、これらの解説書のオーディオブック版がないのだから。
 そこで「無いものは作ろう」の精神で、挑戦することにした訳だ。いろいろ考えて思いついたのが、MOSA湘南ミーティング2005の基調講演録である。講演録というは、オーディオブック向きのジャンルのひとつだといえる。現時点でiTunes Music Storeにおける日本語の講演録というのは、非常に少ない。もちろんMac関連のものと限定すれば皆無である。湘南ミーティングに参加している方はご存知かと思うが、ここしばらく基調講演の講師を務めている、大谷和利氏の軽妙な語り口ながら深い洞察力を秘めた話は、定評があり書籍や雑誌の記事から受ける印象とはまた違った魅力がある。録音状態は必ずしもベストとは言えなかったが、会場との掛け合いなど、ライブ感あふれるちゃめっけたっぷりな氏の語りは絶品と言って良いだろう。特にこの講演の中で紹介された「ポッド電」にまつわるくだりは、会場の笑いと喝采を呼んだ。

制作の手順は、ビデオテープから音声の部分を抜き出して、雑音を取り除いたり音楽が流れている部分をカットしたり、解説やオマケ部分を追加録音して編集を行いオーディオCDを作成した。このあとパッケージ化する際に必要な情報(カテゴリ、タイトル名、執筆者名、価格、再生時間、出版社名等)を、所定のシートに記載し、iTunes Music Storeにおける取りまとめ窓口の、オーディブルジャパンに受け渡しを行うのだ。
 もちろんiTunes Music Storeでオーディオブックを販売するためには、ただ一つの代理店であるオーディブルジャパンと契約を交しておく必要がある。こうしてMOSA湘南セミナー講演録「素晴らしい技術は三幕で構成される!」は、原盤の受け渡しから2ヶ月後に公開された。通常は3週間程度と聞いていたので、今回はずいぶんかかったことになる。データの調整に時間がかかったということだが、次回からはスムーズに公開されることを期待しよう。
 なお大谷氏の意向で、講演録の収益は全額MOSAの活動資金として寄贈される。
 今後ともこのシリーズの充実を図って行きたいと考えている。皆さんからのアイデアを是非お寄せ頂きたい!

■プロフィール
松木英一(まつき えいいち)
昭和28年生まれ 福井県福井市出身 明治大学文学部卒。
1987年NIFTY-Serveのサービス開始と同時にMacintoshユーザーのためのネットワーク上のフォーラムであるMACUS-Jを主宰。
1993年にネットワーク通信メディア上でのビジネスを展開するため有限会社パステルを設立し、一貫してネットワーク通信メディア上で事業を展開する。
2003年には有限会社パステルの関連会社として有限会社パムリンクを設立。
2005年に株式会社アイチューンズとiTunes Music Storeでのダウンロード販売契約を行い、以後、iTunes Music Storeでの音声コンテンツのダウンロード販売を手がける。本業のかたわら、MOSA常任理事としてMOSAが関係する一般向けイベントを担当している。また、Macintosh関連の専門誌MacFanにても執筆活動中。

WWDC06レポート        川本 康詔

MOSA会員の皆様、こんにちは。株式会社ナナオの川本康詔と申します。今年もMOSAツアーを利用してWWDCに参加いたしました。僭越ながらWWDCの感想を書かせていただきます。

私は今もCodeWarriorでMac OS 9でも動作するCFMアプリを開発しておりますが、近い将来いきなりUniversal Binary移行をすることになりそうなので、そのときはCocoaではじめから書き直そうかと考えています。しかし、Cocoaは10.2の頃の知識しかないため、今回のWWDCのテーマは「Cocoa再入門」でした。Cocoaのセッションを中心に聴講しましたが、どのセッションも内容が濃く、とても勉強になりました。

WWDCの参加は2001年、2005年に続いて今回が3回目ですが、今年が最も熱気に包まれていたような気がします。また、最も充実し、最も楽しめたのではないかとも感じています。今年は金曜日の午前中で終了になりましたが、最後のセッション終了まで大勢の参加者で賑わっていたのがとても印象に残っています。木曜日のCampus Bashでは現地で知り合った人がレンタカーを借りるということで、便乗させていただいてAppleキャンパスに先乗りすることができ、カンパニーストアでの買い物もゆっくりでき、キャンパス内でもゆっくり楽しむことができました。
ただ、今年は8月の開催になったため、避暑にはとても良かったのですが、ツアー料金が高くなったため、8日間コースを選ばざるを得なくなり、やはり5月か6月が良いな、と思いました。ただ、今年はホテルで無線LANも利用可能になっていたので、とても便利でした。

(来年参加を検討されている方へ  〜特に初めての方へ)
WWDCにはたくさんの日本人デベロッパが参加しますので、いろんな人と知り合いになれる良い機会です。航空券やホテルの手配は例年AppleやMOSAがツアーを企画しているため心配はありません。英語でのコミュニケーションもWWDC会場内ではAppleの日本人スタッフのサポートがあるので特に心配することはないと思います。海外未経験の方でもWWDCは参加しやすいのではないかと思います。

来年も可能であれば参加したいと思っていますが、是非皆さんも参加しましょう!

■プロフィール
川本康詔(かわもと やすのり)
大学修了後、株式会社ナナオに入社。入社後はしばらくLCDモニターのスケーリング(解像度変換)技術開発に従事し、その後Windowsアプリケーション開発を担当。2000年からMacプログラミング業務を開始する。Mac開発の比重が高くなるにつれ、個人でもMacを楽しむようになり、現在、WWDC2006直前に購入したMacBookでCocoaプログラミングを楽しもうと考えている。

Wonderful Server Life」  第16回  田畑 英和

  〜これからの連載〜

 さて、これまでMac OS X Serverの導入について解説してきましたが、これからはいよいよMac OS X Serverで運用する各サービスの解説を始めていきたいと思います。サーバで利用可能なサービスは色々あり、どのサービスから解説を始めたものか迷ってしまいますが、ディレクトリサービスの解説から始めていきたいと思います。

◇ディレクトリサービスとは?
 さて、ディレクトリサービスとはいったいなんでしょう? まずはディレクトリサービスを導入することにより、どういったことが実現可能になるかをみてみましょう。ディレクトリサービスは、ほかのサービスとも密接に関連していますので、ほかのサービスとディレクトリサービスとの組み合わせでどのようなことが実現できるかをみてみます。

・ファイルサービスを利用する
 ファイルサービスはもっともよく使われるサーバのサービスですが、ディレクトリサービスがない環境では、クライアントとサーバ上にそれぞれユーザアカウントが必要になってきます。ディレクトリサービスを導入すればサーバ上でユーザアカウントを一元管理できます。(こういったユーザのことをネットワークユーザと呼びます)。
 ネットワークユーザは、クライアントへのログインに使用することもできますし、ファイルサーバへのアクセスに使用することもできます。つまりネットワーク上でユーザアカウントを共有することができるのです。また、アクセス権の管理をおこなうさいにもディレクトリサービスは重要になります。

・ネットワークホームを利用する
 ユーザアカウントだけでなくホームディレクトリもサーバ上で一元管理することができます。ネットワークユーザとネットワークホームを組み合わせればどのMacを使っても、いつも同じユーザとホームを利用できます。各ユーザごとのホームディレクトリの情報や、サーバ上のホームを動的にマウントするためのマウントレコードはディレクトリサービスを使って管理することができます。

・NetBootを利用する
 NetBootとは、サーバ上に用意したシステムのディスクイメージから、ネットワーク上のクライアントを起動するテクノロジーです。このとき各NetBootクライアントはサーバ上のディスクイメージを共有し、クライアントからサーバ上のディスクイメージを直接変更することができません。ですのでNetBoot用のシステム(サーバ上のディスクイメージ)では、ユーザやホームを管理することが難しくなります。
 そこで、通常NetBoot環境ではネットワークユーザとネットワークホームを利用することになります。ですのでNetBootシステムではディレクトリサービスの導入が不可欠になります。

・クライアントの環境設定を管理する
 こちらはディレクトリサービスそのものの機能になりますが、ディレクトリサービスを使ってサーバ上でクライアントの環境設定を一元管理することができます。
 様々な環境設定が可能ですが、たとえばクライアント上で起動可能なアプリケーションの制限、ネットワークの環境設定(Proxy設定)、メディアアクセスの制限(CD-R/DVDへの書き込みや外付けディスクの使用制限)、Dockの設定などを行うことができます。

 このように、ディレクトリサービスを利用することで様々な機能を実現することができるのです。このほかにもシングルサインオン環境、Finderのネットワーク表示のカスタマイズ、アドレス情報の管理などを実現することができます。
 ディレクトリサービスは、様々な情報をサーバ上で一元管理し、ネットワーク上で共有可能にするためのサービスです。ディレクトリサービスを導入することによりクライアント管理の効率がぐんと向上します。

さてこれからの連載ですが、ディレクトリサービスの設定方法から話を始めていきます。ディレクトリサービスの話ばかりにかたよってもいけませんので、ほかのサービスの解説も交えながら連載を進めていきたいと思います。
 次回の連載ですが、ディレクトリサービスをきちんと動作させるにはDNSの環境が整っている必要がありますので、Mac OS X ServerのDNSについて解説を行いたいと思います。

つづく

小池邦人のCarbon API 徒然草(2006/08/25)

〜 Carbonモダンアプリケーションへの道(その2) 〜

今回は、もう少し詳しくDEPRECATED APIを調査してみたいと思います。いったい、どんなAPIが消え、どんなAPIが生き残ったのか? APIの差し替え作業をするにも、まずこの点を把握しておかなければ始まりません。

どのような種類のAPIがDEPRECATEDの洗礼を受けるのかについて、何かしらはっきりとしたルールが存在すれば使う側も判断しやすいのですが、どうも、そうした明確な基準は提示されていないようです。しかし、Carbon Frameworkのヘッダーファイルを調べてみると、まず最初にQuickDraw関連のAPIがほとんどダメ(DEPRECATED指定)だと言うことに気づきます。QuickDraw関連のAPIが定義されているヘッダーファイルは、QD.hというヘッダーファイルにまとめて記載されていますので、その個々の内容を調べることで大まかな状況を把握することができます。

ここで対象となるヘッダーファイルは、QuickDraw.h、QuickdrawText.h、PictUtils.h、QDOffscreen.hなどです。前回も少しお話しましたが、QuickDraw.hでDEPRECATEDと指定されていないAPIは全部で60弱です。
QuickdrawText.h、QDOffscreen.h、 PictUtils.hの3つについては、ほぼ全てのAPIがDEPRECATEDとなっています。DEPRECATED指定を免れたAPIを分類してみると、QDBeginCGContext()やQDEndCGContext()、そしてQDSwapPort()のように、名称の先頭に「QD」とついたAPIはほとんど生き残っています。これらはMac OS X以降に導入された比較的新しいAPI群です。QuickDraw.hでは、こうしたAPIが20程度存在しています。

それ以外は、不思議なことに、GetPortBounds()、GetPortForeColor()といったCGrafPortの情報を得るためのAPIが結構生き残っています。
GetPortBitMapForCopyBits()も、そのうちの一つですが、この情報が必要であるCopyBits()がDEPRECATEDなのに、何故にこのAPIのみが生き残っているのかはかなり謎です(笑)。この状況を見ると、GWorld(オフスクリーン用CGrafPort)については、それを用いることを禁止したいようですが、CGrafPort自体を無くしてしまうことはないようです。システムの深淵に、まだどうしても外すことができない「理由」が存在しているのかもしれません。GetPortTextFont()、GetPortTextFace()、GetPortTextMode()、GetPortTextSize()などもDEPRECATEDでないのが本当に不思議です。

QuickDrawのメイン画像フォーマットであるPictureを操作するAPIは全滅です。ただし、既に保存されている画像ファイル(PICTファイル)を取り扱いたいケースは多々ありますので、CoreGraphicsで描画を行う時に必要な情報を得るためのAPIが別途用意されています。それらは、QDPictToCGContext.hというヘッダファイルに記載されています。また、Polygonを操作するAPIは全滅ですが、Region(任意領域)については、RgnToHandle()やIsValidRgnHandle()が生き残っています。これを見ると、システム内部でのRegion利用が根絶されたわけではなく、Window Manager関連などでは、まだその使用が継続されているようです。ただし、Appleとしては、徐々にRegionをCoreGraphicsの「Shape」に切り替えたいと考えているようです。Shapeに関してはHIShape.hを参照してみてください。

現在のMac OS Xネイティブ描画システムはCoreGraphics(Quartz 2D)ですから、何らかの描画においては、そちらのAPIを代用すれば、ほとんどのケースは問題ないはずです。ところが、QuickDraw.hでは、描画に直接関係していないAPIもDEPRECATEDとなっており、その処遇に納得いかない場合が多々あります。例えば、Rect構造体を操作するSetRect()やOffsetRect()といったAPIがそれです。ちなみに、Window ManagerのCreateNewWindow()(こちらは当然DEPRECATED指定でない)では、以下のように引数としてRect構造体を渡す必要があるわけです。よって、SetRect()ぐらい残しておいてもバチは当たらないと思うのですが…どうなんでしょうかねぇ?

extern OSStatus CreateNewWindow(
WindowClass windowClass,
WindowAttributes attributes,
const Rect * contentBounds,
WindowRef * outWindow )

まあ、このレベルのAPIであれば手間さえ惜しまなければ、以下のように自作の代用ルーチンを用意すれば問題は解決します。しかし、CopyBits()、CopyMask()、SeedFill()、BitMapToRegion()といったハイエンドAPIは、ベテランプログラマになると描画処理の目的以外でも色々と活用しているケースが多々あり、こうした有用なAPIがなくなり、かつCoreGraphicsにその代用品が無いとなると、非常に困った事態に遭遇することになります。筆者が一番頭をかかえているのはこの点でして、そうしたAPIは何とか残しておいて欲しいのですが…まあ、無理なんでしょうね(涙)。

void setRect( Rect *drt,short left,short top,short right,short bottom )
{
    drt->left=left;
    drt->top=top;
    drt->right=right;
    drt->bottom=bottom;
}

void offsetRect( Rect *drt,short dx,short dy )
{
    drt->left+=dx;
    drt->top+=dy;
    drt->right+=dx;
    drt->bottom+=dy;
}

void insetRect( Rect *drt,short xx,short yy )
{
    drt->left+=xx;
    drt->right-=xx;
    drt->top+=yy;
    drt->bottom-=yy;
}

void rectToCGRect( Rect *drt,CGRect *cgrt )
{
    cgrt->origin.x=drt->left;
    cgrt->origin.y=drt->top;
    cgrt->size.width=drt->right-drt->left;
    cgrt->size.height=drt->bottom-drt->top;
}


こうして色々なヘッダーファイルを調べてみると、最初は、システムのパフォーマンスや安定性に直結するスレッドセーフや64bit対応に不向きなAPIが、そのままDEPRECATEDに指定されているのかと考えたのですが、どうやらそうでもなさそうです。GWorldやPicture同様、Pascalストリングス(Str255)やファイル保存場所を指示するFSSpec構造体を引数に渡すAPIは、ほとんどがDEPRECATED指定を受けているようです。ところが、Mac OS X登場時には「風前の灯火」と噂されていた(笑)Resource Manager(Resources.h)には、何故だかDEPRECATED APIがひとつも存在しません。システムの進化の「都合」が色濃く出ているようで、実に興味深い結果です。

さて、自作アプリケーションのメイン処理の中心として活躍していたAPIが突然消えてしまったら、デベロッパーは途方にくれてしまいますよね。そうした事態を避けるために、Apple社は何年かかけて少しずつ代用APIを準備してきました。次回は、そうした代用APIを取り上げ調査してみたいと思います。

つづく

SqueakではじめるSmalltalk入門   第68回  鷲見 正人

本連載では、名前は知っていてもなかなか触れる機会のないSmalltalkについて、最近話題のSqueakシステムを使って紹介しています。前回に引き続き、簡易GUIビルダを作成します。今回のテーマは、ウインドウメニューへのメニュー項目の追加です。

ウインドウメニューは、ウインドウのタイトルバー左寄り、クローズボタンの右隣にあるボタンをクリックしたときにポップアップするメニューのことです。このメニューには、モデル(a SystemWindowのインスタンス変数「model」に束縛されているオブジェクト)を通じて、好きなメニュー項目を追加することができます。作成中のGUIビルダでは、このメニューに、ウィジェットを追加したり削除するためのメニュー項目を設ける予定です。

手近なところでは、ワークスペースのウインドウメニューに項目が追加されています。どんなふうにしてそれを行なっているのか、参考にするため、しくみを調べてみましょう。

▼ワークスペースで追加されている項目の確認
まずは、デフォルトの状態。まさに「GUI Builder」ウインドウがそうなのですが、特に項目が追加されていない場合、次図のようなメニュー項目が現われるはずです。

[fig.A]デフォルトの項目のみのウインドウメニュー

次に、ワークスペース。デスクトップをクリックしてデスクトップメニューを呼び出し、cmd + K(あるいは、「開く…」→「ワークスペース」)でワークスペースを呼び出してから、ウインドウメニューボタンをクリックしてください。

[fig.B]ワークスペースのウインドウメニュー

4つのメニュー項目(正確にはさらに二本の区切り線)が追加されていますね。以上のメニュー項目が、どのようなメソッドを介して追加されているのかを調べるのには、すでに学んだ方法を駆使するいくつかの方法(よかったら、復習がてらにチャレンジしてみてください)がありますが、今回は、メニュー項目の文字列を手がかりにした、別の新しい方法をご紹介します。

▼メニュー項目の文字列を手がかりに関連メソッドを手繰る
すでに第57回ごろに学んだとおり、メニュー項目の追加は、通常、メニューオブジェクト(a MenuMorph)にメッセージを送信し、#add:target:action:などのメソッドを起動させることで行なわれます。このことは、たとえば「save contents to file…」というメニュー項目を作る式(あるいは、そのとき送信されるメッセージ)には、’save contents to file…’という文字列リテラルが含まれている可能性が高いことを意味します。

ところで、Smalltalkシステムには、ある文字列リテラルを含むメソッドを探し出して列挙してくれる便利な機能が用意されています。シフト黄ボタンメニュー(黄ボタンメニュー→「さらに…」。英語ではmore…)にある「メソッド中文字列の部分」(英語では、method strings with it)で起動することが可能で、そのとき選択されている文字列が対象とされます。キーショートカットはcmd + shift + Eです。

つまり、メニュー項目の文字列を指定して、このサービスを利用すれば、注目するメニュー項目を定義しているメソッド、あるいは、それに深い関わりを持つ可能性が高いメソッドを列挙することが可能…というわけです。

ここで、さらにもうひとひねり。Squeakシステムで使われているポップアップメニューには、shiftキーを押しながら項目をクリックすると、そのメニュー項目をテキストとして選択可能…という、何に使うのかよく分からない、ちょっと変わった挙動を示します。この性質を先のcmd + shift + Eと組み合わせてみましょう。

[fig.C]shiftクリックで選択されたメニュー項目のテキスト

図のように、メニュー項目をテキストとして選択した状態にしてから、先に紹介したcmd + shift + Eをタイプしてみてください。結果、システムは、文字列「save contents to file…」について、ParagraphEditor class >>#shiftedYellowButtonMenuとWorkspace >> #addModelItemsToWindowMenu:の二つのメソッドがこれを含むことを見つけてきてくれます。念のため、我々が探しているメソッドは後者です。

[fig.D]「save contents to file…」を含むメソッド一覧

たった2アクションでこんな情報にアクセスできるなんて、Smalltalkというのは、まさに“なんでもあり”のシステムですね(笑)。ただし、残念ながら、メニュー項目が日本語の場合はこのTIPSは使えないようなので、他のメニュー項目で試してみたいときは、デスクトップメニュー→「ヘルプ…」→「言語を設定…」でEnglishを選んで言語を切り替えておく必要があります。

さて。当初の目的である「ウインドウメニューへ項目の追加」のためには、モデルの属するクラス(ワークスペースなら「Workspace」、作成中のGUIビルダなら「GuiBuilder」)に、#addModelItemsToWindowMenu:を定義して、パラメータとして与えられているaMenuにメニュー項目を追加すればよさそうなことが分かりました。

余力があれば、この、Workspace >> #addModelItemsToWindowMenu:の定義を変更(たとえば、メニュー項目の文字列を変更したり、新たにメニュー項目を追加するなど)して、実際に影響が及ぶかどうかを試してみるのも面白いでしょう。分解して仕組みを調べて学んだり、遊んだりできるのが“暫定ダイナブック環境”の醍醐味ですから、これを実践しない手はありません。

GuiBuilderへの#addModelItemsToWindowMenu:の追加は、次回。

バックナンバー:

ニュース・解説

 今週の解説担当:木下 誠

———————————————————————-
Leopard先行プレビュー
———————————————————————-

先日行われましたWWDC 2006では、予告通り、Mac OS X 10.5 “Leopard”のプレビューが行われました。サンフランシスコに行った方は、すでにインストールして、新機能を試している事でしょう。

Leopardの情報は、一部Appleのサイトでも、先行プレビューとして紹介されています。英語版は、WWDCの基調講演と同時に公開されましたが、このたび日本語版も用意されました。

Time MachineやSpacesといったユーザの耳目を集める機能から、Xcode 3.0やObjective-C 2.0といった開発に関わる情報も、ほんの少しだけあります。サンフランシスコに行けなかった方は、こちらから予想しましょう。

Leopard先行プレビュー
http://www.apple.com/jp/macosx/leopard/

———————————————————————-
Xcode 2.4、CHUD 4.4.2、Boot Camp 1.1
———————————————————————-

WWDC後に登場した、ツールをまとめておきましょう。

まず、Xcodeが2.4にバージョンアップしました。ハードウェアの様々な情報を調べる事が出来る、CHUDも4.4.2がリリースされています。

さらに、Boot Campも1.1が登場しています。新しく登場したMac Proへの対応が、主な機能になっています。

Xcode 2.4
CHUD 4.4.2
http://developer.apple.com/tools/download/

Boot Cammp 1.1
http://www.apple.com/macosx/bootcamp/

 

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

 

MOSA Developer News   略称[MOSADeN=モサ伝]
      記事投稿受付 http://www.mosa.gr.jp/topics/mdn-toukou.html
Apple、Mac OSは米国アップルコンピュータ社の登録商標です。またそのほかの各製品名等はそれぞれ各社の商標ならびに登録商標です。
このメールの再配信、および掲載された記事の無断転載を禁じます。
特定非営利活動法人MOSA  http://www.mosa.gr.jp/
Copyright (C)2006 MOSA. All rights reserved.