home link download back number special issue

HMDT - Back Number / July, 2001


July, 2001


July 29 - Cocoa 1001, Dialog, Dialog, Dialog!
keywords: Cooca 1001, modal dialog

だいぶ更新の間隔が空いてしまったけど、Cocoa 1001 をまた少し書きました。今回は、モーダルダイアログの話です。

  • Mac OS X のモーダルダイアログ
  • アプリケーション・モーダルダイアログを表示する
  • ドキュメント・モーダルダイアログ(シート)を表示する
  • アプリケーション・モーダルダイアログと、ドキュメント・モーダルダイアログ(シート)の違い
  • 簡単にダイアログを表示する

シートもからめていろいろ書いたので、プログラマ以外の人も、ちょっと参考になるかも。どうも、更新頻度が遅くなりがち。う〜ん、調子に乗れないなぁ、、、

July 22 - Cocoa 1001, NSApplication
keywords: Cooca 1001

Cocoa 1001、きょうは NSApplication に手を入れました。サンプルをどんどんアップするのはいいんだけど、サーバがいっぱいになってしまったよ。5MB は少なすぎるぞ、So-net。移転先を見つけないとだめかなぁ、、、

あと、見てくれるとわかるんだけど、Cocoa 1001 のデザインが、また、変わったよ。今回は、結構 drastic に変えたぞ。Design language は、そーだなー、La Jolla Blue かな。って、青いだけじゃん。

July 21 - Dockling の将来
keywords: Dockling

MacWIRE が興味深いインタビューを載せているね。OS 担当のマネージャーが語る、Mac OS X 10.1 の改良点の話だ。ちょっと嫌な見方だけど、現場のエンジニアではなく、マネージャーがどこまで詳細を語れるのか?というのは、興味ある。が、EXPO だし(WWDC ではない)、MacWIRE という一般向けの媒体なんで、聞き手も受け手もあんまり深い話はしてないよね。

そんな中で、興味を引いたのは Dock の話だ。どうやら Dock のアプリケーションアイコンをクリックして、メニュー等を出してアクセスする API が公開されるらしい。ほほう。それはうれしいかも。ただし、疑問が一つ。Dockling はどうなるの?

現在、Dockling は API が公開されていない。だから、Dockling を作る人は、Apple が提供していない方法で API にアクセスする。とうぜん、OS がアップデートされれば、動かない可能性が高い。インタビューでは、iTuens Docking はなくなる、っていってるし。Dockling がなくなる、とは言ってないけど、もうメンテナンスモードの扱いなんでしょーか。

July 19 - Mac World EXPO
keywords: 10.1

Mac World EXPO やってるね。めぼしい発表がなかったハードウェアはさておくとして、今回の目玉は Mac OS X 10.1 でしょう、やっぱり。デバロッパよりの情報はほとんどなかったけど、各所の Mailing list などから漏れ伝えてくる情報によると、10.1 ではいろいろと興味深い変更があるみたい。いちばん大きいのは Objective-C++ のサポートかな。他にも Darwin や AppKit のバージョンアップがあるのか、気になるとこですな。とりあえず、9 月を待て!

July 18 - Cocoa 1001, NSBezierPath, 曲線を描く
keywords: NSBezierPath

Cocoa Prgoramming Tips 1001NSBezierPath にさらに手を入れたよ。今回は曲線を描く、って話だけど、マウスドラッグでベジェ曲線を動かせるサンプルを付け加えてみたよ。

July 17 - Cocoa 1001, NSBezierPath
keywords: NSBezierPath

きのうの宣言通り、Cocoa Prgoramming Tips 1001 の見直しをぼちぼちとやってます。きょうは NSBezierPath に手を入れました。内容は前のとほとんど同じだけど、サンプルコードがダウンロードできるところが違ったりします。

July 16 - Cocoa Programming Tips 1001!
keywords: New Cocoa Programming Tips

Cocoa はやっぱり!」の鶴薗さんが、MDOnlineMacWireにてメジャーデビューを果たしていました!おめでとうございます。期待していますので、一月に一回と言わず、どんどんいってください。

ついでに HMDT も紹介してもらいました。それを記念して、というわけじゃないんだけど、Cocoa Programming Tips 101 のリニューアルを始めます。その名も、Cocoa Programming Tips 1001!数字が増えただけじゃないか、って?まったくもってその通りです。

Cocoa Programming Tips 1001(以下 Cocoa1001)は、Cocoa を使った短いサンプルを集めようぜ、って主旨で始めたものです。最初は Cocoa の勉強がてら始めたので、間違いや勘違いがあったり、かなりレベルが低いものもあるんですよ。そんなもの、わざわざ書くまでもねーだろ、ってものも。で、こつこつと続けて、少しは力も付いてきたので、ここらでもう一度見直しをします。具体的には、

  • 古くなった記事を見直す
  • サンプルソースをダウンロードできるようにする
  • 画像も増やそうぜ

って感じでいきます。まず、AppKit の Graphic Functions から始めてみました。あと、これは読む人には関係ないんだけど、待望の XML 化を果たしました。やー、これでメンテナンスが楽になるよ。

July 14 - User Interface Design for Programmers
keywords: GUI design, for programmer

"User Interface Design for Programmers" という本を買ってきたよ。内容はプログラマ向けの GUI デザインについてだよ。ユーザにとって使いやすい GUI を設計するにはどうしたらいいか?って本です。

この手の本や記事には、なにか例とするアプリケーションを持ってきて、その GUI をてきとーに批判するだけのものが多いんだけど、この本はそれだけで終わっていないところが偉い。ま、批判もするんだけど。特に Microsoft 製品に対して。一通りそのデザインを批判した後、きちんと独自の解決策を提示しています。

Full color で図版も多く、読みやすいっす。日本語訳は出るのかなぁ。出ないだろうなぁ、、、

July 11 - Inside Mac OS X
keywords: fatbrain.com

fatbrain からやっと注文した本が届いたので、それを記念して Inside Mac OS X シリーズの紹介。

現在のところ、fatbrain が Inside Mac OS X シリーズを出してるんだ。昔の Inside Macitosh といえば、あのやたらと大きくて、重いので有名だったけど(?)、Inside Mac OS X シリーズは Letter サイズ(A4 よりひとまわり小さい)で読みやすいっす。現在出てるのは 4 册だと思う。

とりあえず、デベロッパならば必携だと思うよ。でも、まったく同じ内容が Apple のサイトから PDF で落とせるから、必要ないといえば必要ないかも。しかも、高いんだよ、こいつら、、、

July 7 - dyld: multiple definition
keywords: dyld, dynamic link

Mac OS X になって、デベロッパにとってうれしいのは UNIX のアプリが使えること。UNIX アプリのソースをダウンロードしてきて、コンパイルすれば、ほーら、使えることもある。

さて、最近 Python っ子の mkino は、4Suite をダウンロードしてきて、使おうとしてました。Python ベースの XML tool set だ。bin は提供されてなかったので、ソースコードを落としてきて、インストール。ちなみに Python は、標準インストーラが提供されていて、

% python setup.py install

で、インストールできる。4Suite はコンパイル時には何の問題もなかった。じゃ、サンプルを実行、、、のところで、

dyld: multiple definition of symbol

エラーが。symbol が重複している???4Suite はけっこうきちんとしていそうなところなのに、そんな間抜けなことがあるのか?とるものはさておいて Google で検索する。一発で見つかる。Google ってすごーい。

まったく同じ箇所で悩んでいる人がいたよ。それに対する、おそらく他の UNIX ユーザからの、答えは、「ったくよー、Mac OS X は異常なほど symbol に神経質なんだからよ」って感じであったりする。問題点を整理してみると、binary を実行しようとして dyld が dynamic link をしようとした。でも、global な symbol が重複しちゃっている。この場合、python と 4Suite の中の .so の symbol が重複しちゃっている。だから、どっちかの global な symbol を static にしてやればいいんじゃない?でも、どうやって?

それに対するビンゴの答えをしていたのはこれ。Apple のエンジニアからの解答だ。これによると nmedit を使えば、symbol を global から static にできる。まず static にしたくない global の symbol を記述したファイル(filelist)を作る。それを使って、

% nmedi -s filelist object

ってやってやれば、ファイルの中に書いてある symbol 以外の symbol が static になるんだ。逆に、static にしたい symbol を指定する場合は、

% nmedit -R filelist object

で、filelist の中の symbol を static にできる。上の返事によれば、将来の Mac OS X では、nmedit がさらに使いやすくなるらしい。乞う御期待、ってとこか?

そんなこんなで、どうにか 4Suite が起動できました。でもまだなんかうまく動かない。うーみゅ、疲れたよ、もう。やっぱり UNIX は UNIX だなあ。動かすだけで疲れる。

July 5 - Mac OS X de Python
keywords: Python

ごぶさた!

この数日間、Python をいろいろといじっていました。Python いいぞ!気に入った。どの辺がいいかって?Python の特徴は、オブジェクト指向のスクリプティング言語、って言われているよね。だけど、世に数あるオブジェクト指向だけど、極端な話その多くはただの name scope だったりするじゃない?(例:C++)だから、mkino としては、そこが気に入ってるわけではない。

じゃあ、どこか?それは、動的型付けだ。Late binding だ。動的型付けは、オブジェクト指向的なプログラミングスタイルを追い求めて、どんどん抽象度を高くしていくと、どこかで必要になるよね。ただし、その度合いが強くなると、コンパイル時にエラーが検出しにくくなるし、パフォーマンスも落ちるから、適当なところで折り合いを見つけながらね。Python はどうなっているかというと、けっこういってしまってるよ!だいたい、関数の引き数にも返り値にも型がねーじゃん。うおぉ、何渡せばいいかソースを見るまで分からんぞ。Objective-C でいうと、すべて id 型にしてしまった感じか。楽しー。もっといってくれ!

ここであんまり「Python っていいよ」っていうと、きっと、必ず「そんなことは○○っていう言語だとあたりまえだよ、いまさら何いってんだ」っていう反論が来ると思う。それはそのとおりなんだけど、それはさておくとして、大事なのは、新しい言語を学び、技術的な思考の仕方を広げる、っていうことだ。“少なくとも半ダースのプログラミング言語を学べ”、っていったのは Eric Raymond だっけ?それはとても価値ある言葉だと思うし、それを実感できるっていうのはすごく楽しいことだね。


Home | Link | Download | Back Number | Speciall Issue

mailto: mkino@xd5.so-net.ne.jp

HMDT