Macintosh Developer Online (MDOnline)


2001年12月15日発行号 - ファイルのロック



また、例のデジカメ、Che-ez! SPY-Zで引っ張りますが(笑)。動画の撮影もできるとなっています。で、やってみたのですが、単に写真を連写するだけでした。したがって、デジカメからダウンロードすると、26枚のBMPファイルがどーっとあるだけで、Windowsのユーティリティでそれをaviファイルにするという具合です。Macintoshは動画作成対応になっていないということになっていますけど、どうせコマごとにグラフィックスファイルが得られるのであれば、QuickTime Playerのイメージシーケンスの機能でムービーにできるでしょう。まあ、いいでしょう。で、VGAサイズの写真が26枚撮影できますが、それで約8秒です。フレームレートは毎秒おおむね3くらいというところですかね。もっとも、VGAの半分サイズだったら、26秒撮影できます。動画のときには明るさも関係なくシャッターがおりるから、以下のような感じで暗い部屋でも撮影できます。ちなみに、うちのネコですが、猫が動くというより撮影している私が動いているんだけど(笑)。これはVGAサイズでの動画ですが、6.6MBもありますので、暇な方だけダウンロードしてください。動画はWindowsのユーティリティが作成しますけど、そのaviファイルはMac OS 9では参照できました。だけど、Mac OS Xでは参照できないですね…うーん、エンコードを調べようと思ったのに…。
 http://mdonline.jp/figs/01/0049/mov003.avi
しかしまあ、このカメラ用Windowsのユーティリティはけっこう使いにくい。まあ、なんつーか、見てくれは独自デザインのウインドウなんで凝っていそうだけど、操作性が極めて見通しが悪いです(作った人がいらっしゃったらすみません、でも設計は要検討レベルですよ)。
あと、リアルタイムで撮影できるカメラ機能にもなりますが、カメラ側の動作モードを変更しなければならず、Windows版のユーティリティが必要になります。だから、Messangerとかでテレビ電話もできるとは言え、さすがわWindowsでユーティリティを起動しているとビデオ入力をつかまえたままになり、Messangerでエラーになります。なんか、カメラ自体は面白いけど、周辺状況がまだまだまだ〜〜〜ってところですね。
(新居雅行 msyk@mdonline.jp


Mac OS Xでファイルのロックを行う方法に関する解説が公開

Technical Notesに、Mac OS Xでのファイルアクセスを排他的におこなう方法が解説さた文書が公開された。Mac OSではFile Managerの機能として、ファイルを書き込みで開くと自動的にロックがかかり、他のアプリケーションから書き込むなどのアクセスができなくなっていた。つまり、自動的にロックがかかっていたのであるが、Mac OS Xでは根本となるファイルシステムに変更があるので、そした動作は行われなくなった。また、Mac OSでのファイルの一部分をロックする機能についても同様にMac OS XではAppleShareサーバにあるファイルに対してしか利用できなくなっている。この問題については継続的に研究をしているが、現時点で実現できる方法を示すのがこの文書である。
1つの方法は伝統的に使われている「ロックファイル」という方式で、たとえば、fooという文書を開くときにfoo.lockというファイルを同じディレクトリに作り、今あるアプリケーションが開いていることを別のアプリケーションに伝達するという方法だ。ファイルを閉じるとfoo.lockを削除する。もちろん、ロックファイルの有無を確認して開いたりあるいは警告を出すなどを行う。さらにそのバリエーションとしてロックファイルにプロセスシリアルナンバーを記録して、どのアプリケーションがそのファイルを開いているかを示すという方法もある。しかしながら、OSサポートの機能ではないので、必ずその方法が保証されるわけではないことや、名前付けの規則が一定しないなどの問題点もある。一方、開くファイルを/tmpなどにコピーしてそれを編集し、後から保存するときにオリジナルファイルの修正日を確認して別のアプリケーションが書き換えていない場合にはオリジナルを更新するといった動作を組み込むという方法もある。
この問題を解決するには、現時点では、BSDでのAdvisory Lockingという手法を用いるのが最適であると説明されており、ファイルのロックやさらにはファイルの一部分のロックについての方法が解説されている。また、BSDレベルのプログラムのサンプルもある。記載を見る限りは、将来的にはこうしたロックの手法を、Cocoa、Carbon、Javaといった各フレームワークから利用できるようにするということのようである。

関連リンク:TN2037: Exclusive File Access in Mac OS X
カテゴリ:Technote, Mac OS X


【MacWIRE配信予定】Office v.X for MacのWordの機能をもう少し見てみる

MDOnlineの2001年12月14日発行号で『Office v.X for MacのWordの機能を見てみる』と題した記事の中で、Office v.X for Macのフォントインストールについて触れた。余計な勘ぐりでの失礼をお詫びしたいが、この点についてはインストーラの利用方法に問題があるのではないかと指摘を受けたため、再度調べてみた。
まず、OfficeのCD-ROMは次の図のようなものとなっている。Office本体のインストールは、上から2番目のフォルダを、たとえば/Applicationsフォルダにコピーするか、3番目のインストーラを使うということになっている。Office 2001ではドラッグコピーによってインストールした場合でも、最初にアプリケーションを起動したときに適切な機能拡張をシステムにインストールするという機能が働いていたこともあって、ドラッグコピーと、インストーラでのインストールとの違いはないだろうと頭からとりあえず決めつけていた。というか、必要ならフォントのインストールは自分でするという期待があったのだが、お読み下さいの内容などを勘案すれば、少なくともドラッグしてコピーしたOfficeの場合は、フォントについてはその中のフォルダにあるものを自分でインストールしなければならない模様である。
一方、インストーラを使ってインストールした場合は、フォントがシステムのフォルダに自動的にコピーされるかと言えば、やはりされないのである。Installer VISEを使ったインストーラではあるが、少なくともホームフォルダのLibrary/Fontsにはコピーされない。その他のフォントフォルダは管理パスワードが必要だが、インストール中にたずねられることはないし、実際にコピーされた形跡もない。フォントファイルを一旦消してインストーラを動かしてみたが、フォントはOffice XのOffice/Fontsフォルダにはコピーされるけどシステムのフォントフォルダにはコピーされなかったのである。もちろん、インストーラはカスタマイズを行って、フォントのインストールが行われることは確認して作業は行なった。
結果的には、インストーラを使った場合も、ドラッグコピーをした場合も同じ結果になっている。MS明朝などのOffice標準フォントは、手作業でのドラッグ&ドロップで、システムのフォントフォルダにインストールしないといけないということのようだ。ちなみに、Value Packには追加で英語のフォントが用意されているが、これらは、インストーラを使えば自動的にホームフォルダ内のLibrary/Fontsフォルダにコピーされる。

ところで、インストーラを見ていたら、Word Xの新機能として、差し込み印刷関連のものがあるように記載されている。しかしながら、これは特にWord 2001から変化した機能は見られないようである。Word 98からの変更点なのであろう。なお、Word XのヘルプにはWord Xの新機能が記載されているが、Word 2001での新機能も含まれているので、そのつもりで見ておくのが良いと思われる。

また、文字表示のアンチエイリアス関連の表示でも指摘を受けたのだが、ヒラギノフォントにはアンチエイリアスがかかるわけだが、Wordの書式設定で文字幅を設定することができる。とっても古い言い方をすれば「倍角」「半角」ということになるのだが、パーセントで幅の広い文字や狭い文字に設定する機能だ。この書式をヒラギノフォントに適用してたとえば150%とかにすると、アンチエイリアスが行われない。つまり、この辺りの文字描画はWordの独自機能を使っているのだと考えられる。

関連リンク:Microsoft Office v.X for Mac
カテゴリ:文書作成アプリケーション


BSDのカンファレンスではAppleからのキーノートや講演がプログラムに

BSDのカンファレンス、「BSDCon2002」が2002年2月11〜14日に、サンフランシスコで開催される。Mac OS Xのコアにも採用され、Solarisなど現在のUNIX OSの源流とも言えるBSDコミュニティが開催するカンファレンスだ。プログラム内容を見ると、Appleのコミットが目立っている。AppleがMac OS Xに力を入れているのはもちろんだとしても、BSDコミュニティでの存在感が大きくなっている現れでもあると言えるだろう。
まず、2つあるキーノートセッションのうち、1つはBrett Halle氏(Director, Core OS Engineering, Apple Computer, Inc.)によるもので、「UNIX: Not Just for Geeks Anymore ...」というタイトルだ。BSDはコンシューマ製品に搭載されたといったマーケティング的な切り口での講演のようである。
さらに技術セッションでは、「Advanced Synchronization in Mac OS X: Extending UNIX to SMP and Real-Time」と題して、AppleのLouis G. Gerbarg氏が講演を行なう。詳細は公開されていないが、マルチプロセッサ対応やサウンド処理などで利用されているリアルタイム処理のUNIX上での組み込みをMac OS Xの事例として紹介するものと思われる。また、「SystemStarter and the Mac OS X Startup Process」として、AppleのWilfredo Sanchez氏とKevin Van Vechten氏による講演もあり、Mac OS Xの起動処理に関する説明が行われるものと思われる。
さらに、チュートリアルでは「Porting BSD Applications to Mac OS X」と題して、AppleのErnest Prabhakar氏のセッションが行われる。Mac OS Xの登場によってBSDの世界に「ソフトウエアを購入する人たち」といった市場が開けたとし、BSD向けのソフトウエアの移植を行いましょうという主旨のものだ。Darwin対応やMac OS X向けアプリケーション、Mac OS X Server向けのサーバアプリケーションといったものを作りたい人向けのものである。開発ツールでの実際のデモを行い、Cocoaフレームワークを使ってユーザインタフェースを簡単に作成できるところも説明するとしている。
参加費は、チュートリアルとセッションで別々になっている。USENIXメンバー価格や早期割り引きなどが設定されているが、詳細はBSDConのサイトをごらんいただきたい。

関連リンク:BSDCon2002
カテゴリ:Darwin, イベント


今から始めるCocoaプログラミング》文書ファイルを扱うアプリケーションを作る(3)作成するアプリケーションの仕様

前回までに、CocoaのフレームワークにはNSDocumentを中心にして、文書ファイルを使ったアプリケーション作成を支援する機能があることを説明し、その機能の概要や概念的なことを説明した。いよいよ実際に作りはじめるわけだが、いちおう、目標を立てることにしたい。とりあえずは、MOSAのセミナーで紹介したということで、アプリケーションは「MOSAEditor」とうい名前にしよう。まずは第一段階は「基本的なテキストエディタ機能」を実現するということにする。次のレベルを目指すことにする。


以上のことが実現した後は、概ね次のような予定で、機能をアップして行くことにしたい。(MOSAのセミナーのときと順序が違っている。)また、コピー&ペーストやドラッグ&ドロップ、サービスメニュー対応などは、そのままの設定でどこまでサポートされているのかということがポイントになるが順次説明を加える。

文書フォーマットを考えておくことにしよう。上記のシナリオだと、テキストファイルとRitch Textの2通りが出てくる。テキストファイルの場合の文字コードはシフトJISとしてファイルの拡張子は、一般的に.txtとする。一方、Ritch Textファイルの拡張子は.rtfでもいいのだが、他のものと当たらないmeditということにしよう。アプリケーションのクリエイタは「ome9」としておく。

それから、アイコンのファイルを作っておこう。いろいろな手順があるし、ツールもある。Developer ToolsにはIcon Composerもあるが、ちょっと使いにくいというのもあるので、やはり何かツールはないのかと考えるところだ。ちょうど、MOSAのSoftware Meetingで快技庵の高橋さんが紹介していたIcongrapherというのがよさそうだったので、これを使ってみることにする。$15のシェアウエアである。

◇Icongrapher日本語版
 http://www.mscape.com/products/iconographerJ.html

元の画像として以下のものを用意した。Icongrapherでもある程度は編集作業はできるのであるが、ここではPhotoshopやGraphic Converterを使ってある程度は作ってしまったものを使うことにする。mycat.jpgがアプリケーションアイコンで、そのマスクとして8ビットのグラデーション画像をblack.tiffとして用意した。そして、テキストファイル用にnotebook2.gif、meditファイル用にnotebook1.gifを使うことにする。いずれも、128ドット四方の最大サイズのアイコン画像を作った。なお、デザイン的に考慮されたものではない点はご容赦いただきたい。

 http://mdonline.jp/figs/01/0047/mycat.jpg
 http://mdonline.jp/figs/01/0047/black.tiff
 http://mdonline.jp/figs/01/0047/notebook1.gif
 http://mdonline.jp/figs/01/0047/notebook2.gif

Icongrapherを使って必要なアイコンをまとめたファイルを作る方法を説明しよう。最終的にはicnsファイルに保存するが、その中身はいろいろなサイズのアイコンやマスク画像が集合体となったものだ。もちろん、Icongrapherを使えばそうしたファイルフォーマットは気にしなくてもいいのだが、いろいろな形式の画像は基本的には必要になる。ただ、ここでは最大サイズの画像を用意して、それを単に縮小するということでアイコンを用意するという簡単な方法を取ることにする。
まず、Icongrapherで、「ファイル」メニューの「新規アイコン」(Command+N)を選択する。右側で「アイコン構成」というパレットがあるので、その中にある最大サイズの「サムネイル32ビットアイコン」を選択する。最初は真っ白のはずだが、選択することでブルーの枠で囲われる。そして、別のアプリケーションでコピーした画像を、ここでペーストする。たとえば、mycat.jpgファイルをGraphic Converterで開き範囲選択してCommand+Cでコピーする。そして、Icongrapherのサムネイルを選択いてCommap+Vでペーストするというわけである。

◇サムネイルの画像をペーストした
 

ところで、このペーストを行うとき、画像を表示するウインドウの倍率を200%ほどにして、ウインドウ内に隠れる部分がない状態で行わないと正しく画像がペーストされなかった。
続いて、同じように、マスク用の画像black.tiffを開いてコピーし、それをアイコン構成パレットの「サムネイル8ビットマスク」を選択してペーストを行った。プレビューのパレットで、写真とマスクが合成されているところがすでに参照できるようになっている。

◇サムネールのマスクをペーストした
 

そして、「アイコン」メニューの「アイコンの作成」を選択すると、アイコン構成パレットのその他のアイコンにすべて縮小したり減色したアイコンあるいはマスクが設定される。もちろん、デザインにこだわる場合には1つずつ作成しないといけないのであるが、おおざっぱでいい場合はこうした手軽なアイコン作成が可能である。

◇残りのアイコンを自動的に生成した
 

アイコン画像が全部できれば「ファイル」メニューから「保存」(Command+S)を選択するなどして、ファイルを保存する。このとき、Mac OS X向けのアプリケーションなら、フォーマットして「Mac OS X(.icnsファイル)」を選択しておけばよいだろう。ファイル名は適当に付けるが、拡張子はicnsにしておくのがよいだろう。

◇アイコンファイルとして保存しておく
 

続いて、同じように、notebook1.gifをベースにしたアイコンを作成するが、もともとの画像の周辺部分を白で塗りつぶしておく。そして、アイコン構成パレットのサムネイル32ビットアイコンにペーストするが、その画像をすぐ下のサムネール8ビットマスクにドラッグ&ドロップすると、白い部分を抜くようなマスクを自動的に作成してくれる。

◇マスクは画像をドラッグ&ドロップして作成した
 

なお、このnotebook1.gifを元にした画像の場合、なぜか「アイコンの作成」が機能してくれないので、他の領域にも、元画像をドラッグ&ドロップして手作業で各構成のアイコンをうめて行かなければならなかった。このファイルは、document1.icnsとして保存した。
さらに、notebook2.gifをもとにしたアイコンファイルdocument2.icnsも作成した。こちらはなぜか「アイコンの作成」はきちんとすべての構成をうめてくれた。

◇もう1つのアイコンファイルも作成した。
 

これらの作成されたアイコンファイルをダウンロードするのであれば、以下のリンクをご利用いただきたい。

 http://mdonline.jp/figs/01/0047/application.icns
 http://mdonline.jp/figs/01/0047/document1.icns
 http://mdonline.jp/figs/01/0047/document2.icns

筆者がまだIcongrapherになれていないせいもあるのかもしれないが、今回は操作方法でいろいろはまってしまった…。できれば、透過GIFを読み込んで、自動的にマスク設定するとかいった機能や、アイコン構成パレットの部分にFinderからファイルをドラッグ&ドロップして登録するといった機能があると便利ではないかと思った次第である。
(この項続く)

カテゴリ:ユーザインタフェース, Cocoa, 今から始めるCocoaプログラミング


KBase》ExcelからMailやTextEditへのコピー&ペーストを確実に行うには

Knowledge Baseで、Microsoft ExcelでコピーをしたテキストをMac OS XのMailやTextEditでペーストした場合に、意図しないようなペースト結果になる点についての説明が記載された。表形式にならなかったり、思わぬ書式設定がされてしまうが、これはRitch Textの設定が不正確に反映されるためのようだ。TextEditだと標準テキストでの編集状態にしてペーストを行えば、タブ区切りの表形式でのテキストデータがペースとされる。

関連リンク:Mac OS X: Copy and Paste From Excel to Mail or TextEdit Results in Scrambled Text
カテゴリ:Knowledge Base(旧TIL), 文書作成アプリケーション


Mac OS X向けのMySQLと管理ツールをパックにした製品

Mac OS X向けにMySQLを容易に導入し管理するためのパッケージが発売されている。InterServices社のMacOS GURU Teamによる「eSuite4X - MySQL Edition」で、MySQL 3.23.46に加えて、管理ツールの「SQL4X Manager Pro」などが付属する。MySQLはトランザクションをサポートする機能も含めてビルドされたものだ。また、関連ファイルはFinderで見える場所に確保するため、手作業でのバックアップも容易になるといった配慮もされている。SQL4X Manager Proはデータベースの管理やテーブルの参照、SQLの発行、そしてインポートやバックアップといったことがグラフィカルユーザインタフェースを持ったMac OS Xで稼働するアプリケーション上で行える。crontabの管理も行うことができ、定期的にバックアップを行うという設定も可能だ。eSuite4Xは$98となっている。SQL4X Manager Proは$89、簡易版ツールのSQL4X Manager Basicは$49である。eSuite4XにはTomcatやJames等を加えたEnterprise版もあり、こちらは$198となっている。

関連リンク:Mac OS GURU
カテゴリ:オープンソース, データベース


KBase》AppleShare IPの管理ツールはClassic環境では利用できない

AppleShare IPの管理ツールであるMac OS Server Adminは、Mac OS XのClassic環境では利用できないことがKnowledge Baseに掲載された。Mac OS 9で起動して、Mac OS Server Adminを使う必要がある。

関連リンク:AppleShare IP 6.3: Mac OS Server Admin Does Not Work in Mac OS X Classic Environment
カテゴリ:Knowledge Base(旧TIL), ネットワーク管理, サーバー製品


KBase》Windows版AppleWorksでの保存時のエラーについて

Windows版のAppleWorks6で保存時にエラーが出る場合、My Documentsがルートに設定されていることが原因としてあることがKnowledge Baseに掲載された。Windows 95やWindows 98でそうしたことが発生するが、それぞれのOSでのMy Documentsのディレクトリを変更する方法が説明されている。

関連リンク:AppleWorks 6 (Windows): "An unexpected error has occurred, #-38" Message
カテゴリ:Knowledge Base(旧TIL), Windows, 文書作成アプリケーション