Macintosh Developer Online (MDOnline)


2001年10月31日発行号 - Mac本とWO本



今日はとっても濃い本が2冊同時に届き、それぞれ読みどころがあるので、すっかり読んでしまっていましたけど、さすがに読みごたえもあるだけにちょっと疲れぎみです(笑)。いずれの本も、記事で紹介してありますが、読者プレゼント分も確保していますので、こぞってご応募ください。それから、倉橋さんのWebObject Practiceですが、サイトには上がっているので、すぐに読みたい方はそちらからどうぞ。メールの配信は明日にします。
So-NetのADSL(つまり、アッカネットワークですが)に申し込んでいたのですが、光収容のためだめですとあっさり返事が来ました。それで、Bフレッツがさいたま市にくるぞ!と喜んでいたら、私のすんでいる地域は来年1月のサービス開始エリアに入っていません…。ADSLはだめ、Bフレッツもダメ〜。それでCATVはある…という典型的な田舎状態ですよね。ISDNは論外として、CATVは心情的に続けたくないとすると、やっぱりSpeedNetしかありません。で、泣きを入れてみました(笑)。無線がどうしてもダメか?せめて調査くらいしてくれ…って感じです。どうしてもダメなのなら有線を考えるけど、無線がダメな地域なんだからマケろと値切ってもみました。結果はどう出るでしょうか。いずれにしても、ブロードバンドだなんだと騒いでいる割には、アクセス手段ってまだまだってところでしょうか。東京から10数キロしか離れていないところでもこれなんですからね〜。

===============================プレゼント
トランスMaxエクスプレス(リットーミュージック提供-1冊)
http://www.rittor-music.co.jp/hp/books/DTM_data/00206334.htm
――――――――――――――――――――――――――――――――――――
 申し込み方法:<msyk@mdonline.jp>宛にメールをする(以下の共通事項参照)
 メールのタイトルは、【リットーMax本希望】

===============================プレゼント
WebObjectsアプリケーション開発ガイド(オーム社提供-3冊)
http://www.ohmsha.co.jp/data/books/contents/4-274-06439-5.htm
――――――――――――――――――――――――――――――――――――
 申し込み方法:<msyk@mdonline.jp>宛にメールをする(以下の共通事項参照)
 メールのタイトルは、【オーム社WO本希望】

<共通事項>


(新居雅行 msyk@mdonline.jp


WebObjectsの開発に必要な概念からツールの使い方までを丁寧に説明した書籍

オーム社から出版された「WebObjectsアプリケーション開発ガイド」は、WebObjectsによるWebアプリケーション開発についての解説を基本からしっかり説明した、学習に適した書籍だ。著者はGeorge Ruzek氏で、テクニカルラボの翻訳、価格は\5,700である。430ページあまりのボリュームだ。WebObjectsの開発効率の高さはAppleからのアピールをはじめ、いろいろなところで目にするところだろう。これの意味するところは、ある程度理解してしまえば、すらすらとアプリケーションが作成できるということである。しかしながら、ごくごく基本的なことや、理解してしまえば簡単なこと…といったものを説明するのは意外に難しいものである。WebObjectsを理解するもっとも基本的なところを非常に丁寧に説明した書籍が「WebObjectsアプリケーション開発ガイド」である。書籍は3部構成にな?ており、基礎、EOFについて、そして高度な話題と進む。基礎の部分では、WebObjectsが動作する仕組みに加えて、モデル作成やナビゲーションといった、データベースアクセスを行う基本的なことについて原理も含めて詳しく説明されている。EOFの使用方法の部分では、表示グループ(DisplayGroup)や検索、継承など、WebObjectsを特徴付けるEOFについての説明が行われている。ここでは概念の説明はもちろんだが、表示グループといった点にフォーカスするなど、理屈に終始するのではなく実際のアプリケーション構築に結びつく話題から入って行っており、その意味でも理解しやすい説明となっている。高度な話題では、さまざまなユーザインタフェースやコンポーネントの再利用、運用の方法などがまとめられている。Webアプリケーションを作成して、運用を行うまでのひととおり経験しなければならない話題が網羅されているのである。
実際に使用しているWebObjectsはWindows版である。解説の主体はVer.4.5ではあるが、Ver.5での違いについても解説は含まれている。基本的な概念はVer.4.5と現行バージョンのVer.5とは大きくは違っていないので、説明自体は決して古い内容ではない。また、実際の説明はWebObjects BuilderとEOModelerの説明がほとんどであるため、Windows版とMac OS X版では共通点の多い開発アプリケーションの説明が中心になっており、Mac OS Xで開発している人でも戸惑うところはほとんどないだろう。説明で利用している言語はJavaである。なお、HTMLベースのアプリケーション開発についてだけが説明されていて、Direct To Webなどの説明はないのであるが、この点についても現実的には問題はないだろう。
WebObjectsを使って開発をしたいが、どこから手をつけていいか分からない人にはお勧めできる書籍である。基本的な概念が丁寧に説明されているのが初心者にとってはありがたいところだろう。一方、ある程度の開発経験がある人にとっても、すべてのテーマについて詳細に知っているというわけでもないかもしれない。そういう人でも、知らなかったテーマを学習したり、あるいは改めて勉強をしなおすという意味でも十分に役に立つ書籍だと言えるだろう。

関連リンク:WebObjectsアプリケーション開発ガイド
カテゴリ:雑誌、書籍, WebObjects


MIDIから音響処理や画像処理にまで発展したMaxのすべてを紹介する書籍が出版

Maxの本が出た、実に5年ぶりだ。筆者は赤松正行氏と左近田展康氏による「ノイマンピアノ」で、リットーミュージックからの出版だ。ちょうど1000ページという(狙った?)大著で、\6,800となっている。古くからMIDIをベースにしたプログラミングによる音楽制作を行うという意味での開発環境であったMaxであるが、その後、サウンドを処理する機能であるMSP、さらには処理結果が画像という意味での画像合成のnatoや3D画像処理のGEMなど、より多彩な表現が可能になった。本書はその全ての側面を扱っており、基本的な操作方法や、実例として分かりやすいシンプルなオブジェクトの利用方法からはじまり、そして上級者向けのテクニックも含むなど、すべてのMaxユーザが持っていて価値のある書籍だと言えるだろう。入門者にとっても最初の1歩から説明されているが、上級者にとってのリファレンスやあるいはヒントとなる話題も含まれている。さらに、MIDI機器だけでなくセンサーなどを含めたさまざまな入出力機器の利用方法や、あるいはMaxを使って作品制作をしているミュージシャンたちへのインタビューもあり、実際にパフォーマンスや音楽制作をしている人にとって見のがせない情報も含まれている。Maxのソフトウエアとしての能力に加えて、作品制作環境としての視点も含め、Maxのすべてが凝縮された書籍であると言えるだろう。
なお、2001年11月17日(土)には、東京新宿のタワーレコードで、15:00〜16:00の予定で、『「トランスMaxエクスプレス」出版記念トーク&ミニライブ』が開催される。「Sound&Recording Magazine」の2001年12月号には、出版記念インタビューも掲載されてる予定だ。

Maxについての概要を説明しておこう。Maxは一種の開発環境であるが、オブジェクトをウィンドウ上にグラフィカルに配置し、そのオブジェクト間を線で結んで処理の流れを定義するといった形式のものだ。たとえば、そのオブジェクトが、一定のパターンで音を生成したり、あるいは指定した処理を行うフィルタだったりする。かなりたくさんのオブジェクトがあり、それらを組み合わせて「作品」を仕上げるといったものだ。入出力機能もあるため、インタラクティブな作品も作成できる。一般には音楽は楽譜というものに代表されるように、どのような音をどんな順序で発するのかといったシーケンシャルな指示をもとに作られるというイメージが強いかもしれない。一般的な音楽ソフトは、1つ1つの音をいつどこでどれくらいの長さで出すかといったことを記憶させてそれを再生する。Maxによる音楽制作はそうした再生を行うものというよりも、一定の規則をプログラミングして、「生成する」ものと考えればよいだろう。Macintosh環境にはMax以外にもMやJamFactoryなどユニークな音楽ソフトがあったもののビジネス的には苦しかったようで、ジャンル的には相対的な意味でも縮小した。もちろん、お手軽なお遊び的音楽生成ソフトはWindows環境も含めて存在はするが、本格的な作品の制作が可能なのはMaxだけと言っても過言ではない。そのMaxは現在はMacintoshでのみで利用できる(Windows版も開発中ではある)。結果的にMaxにフォーカスしたクリエイタもそこそこ存在するわけだが、解説本の需要は常にあった。1996年にディー・アートから、やはりノイマンピアノ著による「マジカルMAXツアー」が発売されていたものの、数年前から入手困難書籍となっていた。また、当時はMIDI中心だったMaxであるが、その後のサウンド機能や画像処理への伸展も含めて、今現在のMaxを語る書籍の強いニーズがあると言えるだろう。それに応えるのが「トランスMaxエクスプレス」である。

関連リンク:トランスMaxエクスプレス
カテゴリ:開発ツール, 雑誌、書籍


倉橋浩一、じつはWebObjectsで飯食ってます》掲示板を機能アップして複数の掲示板に対応(3)コーディングと実行

□コーディングを行う
さて、コーディングです。ここではコードの説明だけにしますので、ソースコードは以下のアドレスからダウンロードしてください。

 http://mdonline.jp/figs/01/0032/SimpleBoard.sit

―――コンストラクタ Main:
このコンポーネントの中で使用するフラグ類を初期化しておきます。また、refetch()を呼び出して、掲示板display groupにデータベースからデータを読み込んでいます。これはWOBuilderのdisplay group optionでも設定することができますが、ここではあえてプログラム中で実行しています。

―――actionMessageList:
前回使用したものは次のページを生成しただけでしたが、今回は

1.次のページを生成する
2.クリックされたBoardを生成したページに渡す

という処理を追加しました。また、これに関連して、MessageListPage.javaにはboardを受け取るためのメソッド(setBoard)を追加し、

 

MessageListPage.woでdgMessageを開いて、次の図ように設定しました。これは、BoardからMessageへのto manyリレーションを利用して、選択したボードに含まれるメッセージのみを表示するための設定です。

 

MessageListPage.javaのsetBoardでは、受け取ったboardをsetMasterObjectによって、to manyリレーションの親となるオブジェクトを指定し、fetchしています。display group optionパネルで"fetch on load"のチェックを外したのは、ここ(setBoard)でfetchしているからです。

―――actionDelete:
ここでは、削除パネル?を有効にするためにdeletingをonにして、削除しようとするboardを選択しています。削除パネルはdeletingとバインドされたWOConditionalによってon/offされますので、deletingはプログラマが明示的に管理してやる必要があります。

―――actionEnterPass:
パスワード欄に入力した文字列とデータベースの"password"に記録されている文字列とが一致している場合のみ、現在選択されているboardを削除し、これをデータベースに反映させます。その後で削除パネルを閉じるためにdeletingをfalseにしています。

―――actionPassCancel:
削除パネルを閉じるためにdeletingをfalseにし、念のためにデータベースへの変更を破棄しています。削除処理で実際に削除を行うのはactionEnterPassが呼び出されてからなので、ここが呼ばれたときには変更されていないはずなのですが、後で仕様が変わった時などの予防のために入れておきます。

―――actionSearch:
検索キーワードが入力されたら、検索文字列の前後に"*"を付けて「検索文字列がどこかに含まれる」という条件を作り、ソート条件とともにEOFetchSpecificationを作ります。EOFetchSpecificationは、その名の通り条件を記述するオブジェクトで、この他にも多彩な機能があります。そして、この条件に基づいてデータベースからデータを取り込みます。ここではobjectsWithFetchSpecificationを使っていますが、これはオーバーヘッドが少なく無駄なレコードを取り込むこともありません。

―――hasResult:
actionSearchで検索を実行しますが、条件に合致するレコードがあった場合にはtrueを返します。これを使って、検索結果がある時だけ一覧表を表示するようにしています。

―――inserting:
現在、掲示板を追加するための処理をしている最中か否かを返す関数です。実際には、「挿入中のレコードがあればtrueを返す」という処理になっていますが、このアプリケーションでは一度に一つの掲示板しか追加できないようにしていますので、これでも問題ないわけです。

―――actionInsert:
deletingをoffにしてもし開いていれば削除パネルを強制的に閉じ、念のためデータベースへの変更を破棄してから、insert()で新しいレコードを追加します。

―――actionSaveInsertion:
新規に追加したレコードにちゃんとデータが入力されていることを確認した上で、掲示板を作成した日時を記録します。その上で、データベースに変更を保存してから、念のためにrefetchを呼び出します。ここではupdatedDisplayedObjects()だけでも十分なことが多いのですが、同時にアクセスしている他のユーザが掲示板を追加しているかもしれませんので、それを反映させるためにfetch()も実行しています。エラー処理はごく単純なもので、エラー内容を標準出力に表示するだけです。

―――actionCancelInserting:
actionInsertで追加しようとしたレコードをキャンセルしています。ここでもrefetch()を呼び出していますが、これはactionSaveInsertionと同じ理由です。

―――refetch:
データベースからデータをfetchし、display groupに設定されたソート順を反映させます。あえてprivateにしてありますが、こうすると他のクラスから呼び出すことができなくなり、WOBuilderにも表示されなくなります。今回のアプリケーションのような小規模なものでは特に必要ないのですが、大規模になってくるとWOBuilderに関数や変数がびっしりと表示され、なかなか目的のものがみつからない、なんてことも多々あります。ので、外から呼び出す必要のないものにはprivateを設定して隠してしまうことで、作業しやすくします。

□掲示板アプリケーションを実行
では、とりあえずbuild&runしてみます。最初の起動状態がこれです。まだ何も登録されていないので、非常に素っ気ない状態ですね(実は登録しても、寂しい画面ですが)。

 

次に、「(新規登録)」をクリックしてみます。掲示板登録パネルが出てきました。

 

掲示板名などを入力して「登録」をクリックすると、掲示板名が登録され、一覧表にあらわれるとともに、掲示板登録パネルが消えます。「登録」のかわりに「キャンセル」をクリックしても、パネルは消えます。これは、Main.javaのpublic boolean inserting()ではediting contextに挿入中の(かつデータベースに書き込まれていない)eoがある時だけtrueを返し、これによって掲示板登録パネルを囲ったWOConditionalで制御しているからです。

 

ここで掲示板名をクリックするとメッセージ一覧画面に変わります。が、何も登録していないので、当然何も出てきません。ので、適当なメッセージを入力してから掲示板一覧に戻り、もう一つ掲示板を登録してから、その掲示板にもメッセージを登録します。で、掲示板一覧からそれぞれの掲示板名をクリックすると、めでたくその掲示板に属するメッセージだけが表示されます。

さらに、キーワードを入力して「検索」ボタンをクリックすると、そのキーワードが含まれる掲示板が一覧表示されました。

 

削除をしてみます。「削除」をクリックすると削除パネルが現れます。

 

パスワードを入力して「削除」ボタンをクリックすると、掲示板名一覧表から消えます。
(続く)
[倉橋浩一/テクニカル・ピット]

関連リンク:WebObjectsのページ
カテゴリ:WebObjects, 倉橋浩一、じつはWebObjectsで飯食っています


倉橋浩一、じつはWebObjectsで飯食ってます》掲示板を機能アップして複数の掲示板に対応(4)問題点の解決と余談と

□問題点を解決する
ここまで操作してきて、二つほど問題がありました。

1.メッセージを登録しても、すぐにメッセージ一覧に表示されない(一度、掲示板名一覧に戻らないと表示されない)。
2.掲示板にメッセージを登録した後でその掲示板を削除すると、掲示板名のないメッセージが残ってしまう(キーワード検索機能で表示される)。

1.は、MessageListPageのdgMessageの「fetch on load」をoffにしたせいです。setBoardでfetchしているために不要になったのですが、MessagePageから戻ってくる際にはsetBoardが呼び出されないのでデータが取り込まれず、このような現象が起きました。これを解決するために、MessagePageから戻ってくる際にもsetBoardを呼び出すようにします。そのためのコードがこれです。


nextPage.setBoard(board);

3箇所で使っています。boardも新しく追加した変数です。boardには現在処理の対象となっている掲示板をセットしておく必要がありますので、setNewMessageの中でこのためのコードを追加します。

board = (EOEnterpriseObject)newMessage.valueForKey("board");

最後にboardの変数定義を追加します。

public EOEnterpriseObject board;

これでbuild&runすると、メッセージを書き込んだ後にもちゃんと一覧に反映されるようになりました。いや、これが当たり前なんですが(笑)。

問題点の2.はEOModelの設定によるものです。EOModelにはリレーション先(あるいはリレーション元)を削除した時に、自分自身(あるいはリレーション先)をどうするか、という設定ができるようになっています。リレーションを作ったときに定義していませんでしたので、今ここで設定しましょう。SimpleBoard.eomodeldを開いて、EntityのBoardをクリックし、arrayMessageをクリックし、cmd+Iをタイプします。すると、リレーションに関するインスペクタが表示されます。

 

インスペクタの上の方に3つ並んでいるアイコンのうち、中央のアイコンをクリックすると、目的のパネルが現れます。

 

ここで"Delete Rule"の中の"Cascade"を選択します。初期状態のNullifyではリレーション元(この場合はboard)が削除された時にto manyリレーションの先にあるmessageは消えず、message.boardがnullになるだけでしたが、Cascadeに設定するとリレーションの先にあるmessageが消えます。

□次回
というわけで、だいぶ掲示板らしくなってきました。次回は、これにコメントの機能を追加します。コメントツリーが華々しく表示されるようなものではありませんが、これで掲示板としての基本機能がすべて揃うことになります。

□例によって雑談
先日、肩が上がらなくなりまして。私はこの原稿を書いている時点ではまだ30代なのですが、いわゆる四十肩というやつです。これは慢性化しちゃうと本当に辛くて、茶わんを持つのがやっと、腕が水平より上に上がらなくなる、上着の袖を通すのに脂汗が流れる、ぐらいひどくなってしまうのだそうです。
四十肩は何らかの原因で負担がかかったために肩関節およびその周囲が炎症をおこしたものです。その炎症は、肩の外側にある三角筋と内側にある小胸筋などの働きの不均衡によって起こるという説があります。歳とともに内側の筋肉が衰えて起きるのが本来の(?)四十肩ですが、私ら「若い」デスクワーカーの場合には、同じ姿勢を取っていることや冷房の効き過ぎで外側の筋肉が緊張してしまったために起きることもあるようです。
そういえば、私は過去2回ほどそういう症状になったことがありましたが、最初は香港の空調のおかしいホテルに泊まっていた時、二度めは仕事部屋に大荷物が届いたせいで冷房の風下に座っていた時でした....若い頃は冷房に当たりすぎようが何しようがどうということなかったんですけども。香港で症状が出た時は本当に痛くて、観光協会で鍼灸の先生を紹介してもらいました。葉巻きみたいなお灸を近付けて患部を暖めるだけの治療でしたが、1時間ほどで痛みは消えてしまい、治療院からの帰りには地下鉄のつり革にぶら下がっていたもんです(マッサージ込みで5000円くらい)。仕事部屋の時も最初は原因がわからなかったんですが、香港でのことを思い出し、肩の周辺を暖めるツボにいくつかお灸(実は私は鍼灸マニア)をすえて、保温パッドで首から肩にかけて暖めたところ2日ぐらいで痛みは治まりました。
職業がら、肩こりなどで悩んでいる方は少なくないと思いますけども....風邪っぽくなると特に首から肩がだるいという方は、ぼんのくぼの辺りにあるツボを蒸しタオルや保温パッドなどで暖めてみてください。きっとラクになります。漢方ではこの辺に風邪の邪気が集まるとされていて、体が冷えた場合の諸症状を緩和するのに役立ちます。西洋医学的には拝むように手をあわせてぐっと力を入れる体操などで内側の筋肉を鍛えてやることで、長期的に症状を改善することができるようです。
(この項、以上)
[倉橋浩一/テクニカル・ピット]

関連リンク:WebObjectsのページ
カテゴリ:WebObjects, 倉橋浩一、じつはWebObjectsで飯食っています


シマンテックがセキュリティ製品のデモを行うショールームを開設

シマンテックは、東京渋谷の本社内に、セキュリティ製品をカスタマーやパートナーにデモンストレーションする「Symantec Security Showcase」を開設した。シマンテックのセキュリティ関連製品に関する特徴や性能あるいは運用方法などの説明を受けることができる。デモについては無料で受けることはできるが完全予約制となっており、シマンテックのホームページから登録して予約を取るようになっている。セキュリティ製品は、企業の一括導入やサーバでの利用など、製品形態が複雑になっているだけに、必要な情報を得るという意味ではショールームの利用は効率的な方法になると言えそうだ。

関連リンク:株式会社シマンテック、すべてのインターネット・セキュリティ製品を体験できるショールームをオープン
カテゴリ:ユーティリティ, サービス


Mac OS XのCarbonアプリケーションでユーザ名とコンピュータ名を取得する方法

Technical Q&Aに、アプリケーション内でユーザ名とコンピュータ名を取得する方法に関する問と答えが掲載された。Mac OS 9までは、‘STR ’リソースのID=-16096とID=-16413で取得できたが、Mac OS Xではその方法では取得できない。Carbonアプリケーションでは、OSUtils.hにあるCSCopyUserNameとCSCopyMachineNameというAPIを使えば、ユーザ名とコンピュータ名を取得できる。ただし制限がある。まず、Mac OS Xでは基本的にこのAPIは使えるが、10.0.1まではバグのためにクラッシュしてしまうし、10.0.xではコンピュータ名ではなくBSDのホスト名を返し、さらにはCFM形式のプログラムからは利用できない。また、CarbonLibではVer.1.5からのサポートとなる。こうした事情を含めて各種のCarbonで使えるサブルーチンがソースコードして掲載されているので、そのコードを使ってユーザ名とコンピュータ名を取得するようにすればよいだろう。
一方、デーモンとして稼働するプロセスの場合は、ログアウトしても稼働しているかもしれない。その場合は、Mac OS X 10.1で導入されたSystem Configration Frameworkに含まれている機能を使ってユーザ名やコンピュータ名を取得することになる。SCDynamicStoreCopyConsoleUserとSCDynamicStoreCopyComputerNameというAPIを利用すればよい。

関連リンク:QA1078: Getting the User and Computer Name
カテゴリ:Technical Q&A, Carbon/CF


Carbonアプリケーションで「初期設定」メニューの項目を選択できるようにする

Technical Q&AにCarbonアプリケーションで、アプリケーションメニューの「初期設定」メニュー項目をユーザが利用できるようにする方法が掲載された。そのためには「EnableMenuCommand(NULL, kHICommandPreferences);」を実行し、さらにコマンドIDがkHICommandPreferencesに対するCarbonイベントのハンドラを定義する。Carbonイベントを利用しないのであれば、kCoreEventClass / kAEShowPreferencesに対するAppleEventのハンドラを定義しておく。単にEnableMenuCommandだけの定義では、メニューは選択できてもその後に処理は組み込むことはできない。Mac OS 9では「編集」メニューなどに初期設定があるが、そのメニュー項目はMac OS Xでは表示されないようにしておく必要がある。

関連リンク:QA1079: Enabling the application menu’s "Preferences..." menu item on Mac OS X
カテゴリ:Technical Q&A, ユーザインタフェース, Carbon/CF


KBase》WindowsをSMBのクライアントとするときのアカウントについて

Mac OS X ServerのSMBサーバに、Windowsのクライアントから接続するときのアカウントについて、Knowledge Baseに文書が掲載された。Mac OS Xでは、「名前」と「ユーザ名」という設定をアカウントして登録するが、名前はフルネームで、本来のアカウント名はユーザ名の方である。これに対応するWindows側の設定は、「フルネーム」と「ユーザー名」である。WindowsがSMBクライアントとなる場合には、「ユーザー名」をMac OS X Serverに送って認証を行うので、Windowsの側のユーザー名の設定を、Mac OS X Serverに存在するユーザ名と合わせておくのが1つの基本的な設定である。

関連リンク:Mac OS X Server: Windows Clients Log in via SMB With User Short Name
カテゴリ:Knowledge Base(旧TIL), Windows, Mac OS X Server


KBase》日本語版のPower Mac G4のファームウエアアップデータ4.2.8が公開

AGPグラフィックス機能を搭載したPower Mac G4およびPower Mac G4 Serverのファームウエアアップデートの日本語版も公開された。アップデートにより、Mac OS Xからの起動、ターゲットディスクモード、ネットワーク起動、Gigabit Ethernet、そしてシステムの安定性についての改善が行なわれるとしている。アップデート作業はMac OS 9.xで起動して行う。

関連リンク:Power Mac G4 Firmware Update 4.2.8: Information and Download
カテゴリ:Power Mac, OS関連ソフトウエア


KBase》CubeでスピーカーをつながないでDVD Player 3.0を起動するとエラーになる

Power Mac G4 CubeにおいてDVD Player 3.0を起動するときに「System error -70027」というエラーが出る場合があることについてKnowledge Baseの記事に掲載された。これは、スピーカーを接続しないでDVD Playerを起動したからであり、スピーカーを接続していればエラーメッセージは表示されない。

関連リンク:DVD Player 3.0: Error -70027 When No Speakers Are Connected to the Computer
カテゴリ:Knowledge Base(旧TIL), メディアプレイヤ


KBase》DVD再生でDTS Surroundを選んでフリーズする場合

DVD Player 3.0でオーディオフォーマットとしてDTS Surroundを選択すると、直後にフリーズする件について、Knowledge Baseに文書が公開された。その場合は、「制御」メニューから「DVDメニュー」を選択して、オーディオフォーマットして5.1 Dolby Digital Surroundなど別の選択肢を選んで再生を行うようにする。

関連リンク:DVD Player 3.0: Video Stops When Using DTS Surround Sound
カテゴリ:Knowledge Base(旧TIL), メディアプレイヤ


PCIデバイスなどのOpen Firmwareのデバッグを別のマシンからEthernet経由で行う

Technical Noteに、Open Firmwareのデバッグを、Ethernetを通じて別のマシンからTelnet端末で行う方法が詳しく掲載されている。PCIデバイスのファームウエアの開発やデバッグあるいは検査などの目的で、こうした作業が必要になるデベロッパを対象にしている。Mac OS Xの場合とMac OS 9の場合を両方記載しているが、ターミナル接続だけでなくTFTPプロトコルでの利用についての解説などもある。

関連リンク:TN2023: Open Firmware Ethernet Debugging II: Telnet downloading
カテゴリ:Technote, 周辺機器