home link download back number special issue

HMDT - Back Number / January, 2003


January, 2003


Jan 30 - WebCoreHMDTv48.1、WebCoreHMDTv53.1
keywords: WebCore

WebCoreHMDTv48 と WebCoreHMDTv53 をバージョンアップしてみた。修正項目は、

  • 日本語自動判定の JIS の問題(両方)
  • テキストフィールドをクリックすると落ちる問題(v53)

だ。興味のある人は Safari Developer News ニュースへ。

Jan 29 - Safari v51 + WebCoreHMDTv53 + HMDT patch
keywords: WebCore

まずは、昨日の WebCoreHMDTv48 は動かないバージョンあげてしまって申し訳ありませんでした。いま上がっているやつは、たぶん大丈夫だと思うので、よかったら試して下さい。原因は、framework をビルドするときのインストール先に、@execute_path を使わないといけなかったのがちゃんとできてなかった、ってことでした。

で、こりずに今度は WebCore v53 を動かしてみた。WebCore v53 は、そのままでは Safari v51 と動かないんだけど、いくつかの API を変えて無理矢理動かしてみた。たしかに、何か変わっているみたいだけど、どこが変わっているか、よーわからん。興味のある人は Safari Developer News ニュースからどうぞ。

Jan 28 - WebCoreHMDTv48
keywords: WebCore

WebCore v48 に、前に HMDT で検討したパッチを当てたものを公開してみた。これを使うと、

  • URL のチルダ化けの解消
  • 日本語コードの自動判定

といった機能が使えるよ。詳しくは Safari Developer News ニュースで。

公開できる形にするために、ああでもない、こうでもないとビルドを何度も繰り返したよ。いま使っている PowerBookG4/450 では、WebCore のビルドは辛すぎる。そろそろ新しい Mac が欲しいなぁ、、、

追記)すいません。間違ったバージョンをアップしてしまいました。置き換えたので、もう一回試して下みてさい。

Jan 27 - CFArray のオブジェクトの操作
keywords: Core Foundation

Core Foundation の秘密、こないだの続きの CFArray の話。配列の中のオブジェクトの操作について。

Core Foundation の秘密 - CFArray のオブジェクトの操作

Jan 26 - PowerBook の CM
keywords: Yao Ming

なんか、MacMinute に「スーパーボウルに Apple の PowerBook の CM が流れるよ」って書いてあったので、ほうほう、と思って見てた。ちなみに、スーパーボウルとは、アメリカ人によるアメリカ人のためのスポーツ、アメフトの決勝戦。

でも、たしかに姚明(PowerBook の CM の背の高い方)が出ている CM は流れたけど、Apple の CM は流れなかったぞ。ガセネタだった。それにしても姚明って人気者。いろいろ CM 出てるんだ。

Jan 24 - CFArray の実装
keywords: Core Foundation

ちょっと気分転換したくなったので、Core Foundation の秘密を書いてみた。こうやっていろいろ浮気をするから、未完成のコンテンツばっかり増えていくんだよね。それはさておいて、CFArray の話。

Core Foundation の秘密 - CFArray の実装

あと、Safari Developer News も更新したよ。

Jan 23 - WebCore での日本語コード自動判別
keywords: Auto-detect

Safari Developer News、Safari で日本語コードの自動判別を有効にする話。WebCore のコードをいじると、日本語の自動判別ができるようになるのでした。とても便利。

Jan 22

Safari Developer News 更新。

Jan 21 - AppleScript Studio の連載
keywords: PC Watch?

PC Watch で、AppleScript Studio のチュートリアル連載が始まっているようで。AppleScript Studio は、AppleScript から Cocoa を叩いたりもできるようになった、Project Builder と Interface Builder ベースの開発環境。それのチュートリアルみたいです。

で、疑問なのは、なぜに今さら?なぜに PC Watch で?PC Watch しか書くところがなかったのかもしれないが。PC Watch 読んでいる人は 95% Windows ユーザだろうに、記事は完全に Mac OS X を持っている人対象。AppleScript や Project Builder の説明するのにも、Visual Studio との比較を取り入れたりして、がんばっているんだけども、誰に対して書いているのかよく分からない連載です。

でも、チュートリアルの部分はまともだと思う。まだ導入だから分からんけど。興味のある方はぜひ。

Jan 20 - チルダの問題
keywords: Safari, WebCore, 0x203E

先日、ヘチマコンピュータさんが公開されていた WebCore.framework v48 ヘチマ版 v4 ですが、現在公開を中止されています。詳しい問題点は Safari Developer News か、掲示板の方を見て下さい。いま利用している方は、問題点を理解した上での利用を、問題点が理解できない方には、削除をおすすめします。

Jan 19 - WebCore のコードを書くな!?
keywords: Safari, WebCore

Safari Developer NewsSurfin' Safari の 17 日の記事への HMDT のスタンスについて書いてみた。いってることは理解した上で、好きにやりますよ、と。

Jan 17 - Safri と ATSUI の補足
keywords: Safari, Application Services

先日、Safari と ATSUI の話をしたんだけど、突っ込みどころが多かったらしく、メールをもらいました。ありがとうございます。

まず大森さんの指摘によると、Mac OS X 10.2 では NSTypeSetter が ATS ベースに変わっているそうです。調べてみると、Mac OS X 10.2 Developer Release Note に確かにそういう記述が。ATSUI はぜんぜん現役なんですね。こうやって、上の API はあまり変わらないけど、下の方は書き変わっていってるんですな。

あと、「似たような境遇の技術として QuickDraw GX とか QuickDraw 3D とか PowerMail とか、、、」と書いたら、Ventoux さんが、それは PowerTalk だろ、と指摘してくれました。あぁっ、そうだった。失礼しました。

Apple って、Power が好きなんですよね。PowerTalk もそうだし、PowerPC とか PowerMac とか PowerBook とか。Talk も好き。PlainTalk とか。漢字 Talk も。それは Apple Japan か。あと、Q も好き。QuickDraw に QuickTime。ちょっと変わり種で QuickTake。最近では Quartz。こうやって話していると、一本のコラムになってしまいそうなので、この辺で。

Jan 17 - WebCore ヘチマ版 v4
keywords: Safari, tilda fix

ヘチマコンピュータさんが WebCore の問題を修正する WebCore.framework v48 ヘチマ版 v4 を公開しています。それではチルダ問題が解消されています。おぉっ!

早速やってみた。

お世話になってるいぬリンクで、サファリ対策していないリンクでも、ちゃんとチルダが出るぜ。素晴らしい!オープンソースっていいなぁ。

Jan 16 - WebCoreBridge API
keywords: Safari, WebCore

Safari Developer News、さすがにニュースも一段落してきたような。気長にソースコードの読み込みでもしてましょう。ということで、WebCoreBridge の API の解析をスタートしたよ。

Jan 16 - Safri と ATSUI
keywords: Safari, Application Services

Safari の API をつらつらとながめていたら、一部で ATSUI を使っているんだな。おぉ、なんか懐かしいぞ ATSUI。ATUSI は Apple Type Services for Unicode Imaging の略で、まぁ unicode のテキストに関する描画をやってやるぜ、というライブラリだったと思う。やっぱり「アツイ」って読むんだよな。

いちばんの売りというか、引きが強かったのは、横書きだけじゃなくて縦書きができたり、ななめに描いたりもできたこと。比較的よさそうな技術だったんだけど、OS 9 から OS X への移行時期で、鳴かず飛ばずで終わったんだよなぁ。Unicode 系は Cocoa でやればいいし。似たような境遇の技術として QuickDraw GX とか QuickDraw 3D とか PowerMail PowerTalk とか、、、書いてて悲しくなるからやめよう。でも、ATSUI はこっそり生き残ってたんだね。というか Carbon 系のプログラムでは、ばりばり使われていたりするの?

Safari では、フォントのグリフの情報を得るのに ATSUI を使っているようだ。Cocoa でグリフ得るの面倒だからねー。NSLayoutManager がケアしてくれるから、必要ないんだけどさ。ATSUI をわざわざ使うのは、パフォーマンスがよかったりするのか?こういうところに Safari の速さの秘密があったりするのかも。

Jan 15 - WebCoreHack
keywords: WebCore

Safari Developer News を更新。WILLBE6.org さんが、どんどん hack を進めているよ!いよいよ動き出すぜ、WebCore。あと WebCore 解析に、WebCore のサポートクラスを追加したよ。

いまんとこ、こんな感じ。

画像がついて、テキストレンダリングもなんとなくそれっぽい。

Jan 14 - まだ全然だけど、動き始めた WebCore
keywords: Safari, WebCore

WILLBE6.org さんが WebCore を view に埋め込んで表示させることに成功しました。素晴らしい!サンプルはここ。ただし、まだテキスト、画像のレンダリングはなしです。

このコードをもとにして、テキストのレンダリングを付け加えてみた。だめだめだけど、一応テキストを表示させることはできたぜ。

ちなみに、HMDT のトップ画面。乱れまくりだけど、あとは細かい表示を調整していけばいいんだよな。これなら、そう遠くない日に動かせるかも。詳しいことは、あとで Safari Developer News の方に書きます。

Jan 14 - favicon の仕様
keywords: Safari, favicon.ico

Safari Developer News 更新しました。きょうは、favicon の話題。仕様を調べてみた。

Jan 13 - WebCore の構造
keywords: Safari, WebCore, JavaScriptCore

Safari Developer News 更新。および、WebCore の解析もスタート。まずは WebCore の構造から。

Jan 12 - Safari Developer News スタート
keywords: Safari, WebCore, JavaScriptCore

勢いで、Safari Developer News をスタートさせました。Safri および WebCore を使った開発情報を提供するのが目的です。開発ネタにしぼっていきますので。

HMDT としては珍しく、ニュースサイトの形式もやります。ただし、あんまり根性ないので(それほど Web サイト巡回しないので)、いろいろタレこんでくれるとうれしいです。ゴールは、自分のアプリで WebCore と JavaScriptCore を使うための、充分な情報を得る、ということですね。だから、Apple が正式な Safri SDK を発表すれば、用無しになるでしょう。その日まではやってみます。

Jan 11 - Safari SDK は今年後半
keywords: Safari SDK

ADC News #332 によると、Apple は Safari SDK の準備を進めいて、今年の後半には使用可能になる、と。遅いよー。おれはいますぐ使いたいんだ。ブーブー。

Jan 8 - 800 Mbps FireWire の憂鬱
keywords: 1394b, 9-pin cable

ちょっと話題を変えて、FireWire の話。

PowerBook G4 17-inch では、800 Mbps の FireWire が採用になったよね。これは偉い。IEEE 1394 の旗手として、他に先駆けて新しい技術を使うのは Apple の使命なんだ。でも、まだ対応デバイスが出てないから、当分の間は宝の持ち腐れになるでしょう。

速くなった FireWire は、IEEE 1394b っていう規格に準拠している。'b' ね。1394b の特徴は、高速化と長距離か。スピードは、現在 1600 Mbps で、将来は 3200 Mbps。ケーブルの長さは 100m まで可能になる。おぉ、すごい。

どうやって速くしたかっていうと、アービトーレーションのやり方を変えて、ギャップをなくした。一言でいうと、今まではパケットの間に少しギャップがあって、データが送られない期間があったんだけど、そこを詰めたんだ。らしい。ざっとしか理解してないから、あまり突っ込まないでくれ。

速くなったけど、そのために 1394b ではコネクタの形を変えた。9-pin ケーブルってやつだ。PowerBook G4 17-inch の、見なれない方のコネクタの方ね。下位互換はある。1394b では、ベータモードとハイブリットモードっていうのが定義されているんだ。ベータモードは、1394b 同士で通信するモード。このときは 800 Mbps で通信できる。ハイブリッドモードは、昔の 1394 とお話しするとき。とうぜん、相手のデバイスに合わせて遅くなる。

1394b のチップも、ベータモードのみのチップと、ハイブリッド対応のチップ(バイリンガルチップという)と、分かれることになる。で、いやらしいのは、ベータもバイリンガルも 9-pin なんだけど、コネクタの形状が違うんだ。

この、Apple のサイトの FireWire 800 の解説をしている PDF を見てくれ。英語だけど気にしないで見ていくと、3 ページ目にコネクタの図が載っている。ここには、9-pin to 9-pin、9-pin to 4-pin、9-pin to 6-pin の 3 つの図が出ているけど、いちばん上の 9-pin と下の 2 つの 9-pin では、微妙にコネクタが違うでしょ。上の方が、へこんでいる部分が広い。これが違い。上のがベータモード用で、下のがバイリンガル用。

ということで、FireWire のコネクタは、4-pin、6-pin、9-pin ベータ、9-pin バイリンガル の 4 種類になる。さらに、これらの組み合わせを考えると、、、あぁもぅ、やってらんないんぜ!(ベータ to 4-pin、ベータ to 6-pin はないけど。)ただでさえ、4-pin と 6-pin で混乱している人もいるのに。シンプルさを目指していた FireWire も、どんどん複雑になっていくのでした。

Jan 8 - Safari の構造
keywords: WebCore.framework

Safari の話の続き。ソースコードを見たり、Web を見たりした結果、Safari の構造はだいたいこんな感じではないかと。

Safari が独自に使っているのは、WebKit.framework と WebFoundation.framework。それより下の部分は、KWQ と KHTML を合わせて WebCore.framework。JavaScriptCore.framework は、両者に使われている。上の部分と下の部分をつなぐのが、WebCoreBridge。

で、ソースコードが公開されているのは、WebCoreBridge より下の部分だ。アプリケーションに提供される API は、WebCore.framework にまとめられているから、これを使えば自分のアプリケーションで利用できるはずなんだけど、うまくいかないよー。

WebCoreBridge の API は、Cocoa の API とはぜんぜん違っていて、KWQ へのシンプルなラッパという感じだ。ヘッダだけ見て、いきなり使うのはちょっと難しい感じ。くそぉ、どうにかして使ってみたいんだが、、、

Jan 7 - Safari が来た!
keywords: New Web browser

追記 その 4)

KDE.NEWS に Apple が Safari に KHTML を採用した、との記事。ん、まぁ、みんな大喜び。ここから読める Apple による変更点が興味深い。

ソースコードのダウンロード開始。ただいまビルド中。リリースノート無し。ドキュメント無し。

追記 その 3)

Apple の Darwin ページに WebCore が登場。

それによると、WebCore は KHTML と、それをラップする KWQ からできている。KHTML は C++、KWQ は Objective-C++。でも、Objective-C の API も用意する。

JavaScriptCore は、KDE の KJS ライブラリからできている。

WebCore と JavaScriptCore のソースコードは、今日のアメリカ太平洋時間の PM 5:30 からダウンロード開始。

追記 その 2)

フレームワークをざっと調べたところ、

  • JavaScriptCore.framework
    JavaScript のサポート
  • WebCore.framework
    HTML のレンダリング
  • WebFoundation.framework
    HTTP 処理、リソース処理、認証処理、その他 Foundation の拡張
  • WebKit.framework
    GUI 周り、AppKit の拡張

って感じみたい。ほんとに Cocoa アプリだった。Cocoa でここまで速くなるんだ。すげーな。

で、WebCore.framework にレンダリングエンジンがあるんだけど、シンボルを見る限り、やっぱり khtml らしい。クラスインデックスと見比べてみたんだけど、これのポーティングのようだ。ほんとに Mozilla でも Gecko でもなかったんだ。

追記)

あ、KDE のところなわけね。ちなみに、KDE は GNOME と人気は二分している Linux 上のデスクトップ環境。khtml っていうのがレンダリングエンジンの名前。HTML 4.0、JavaScript の大部分、Java アプレットを使える、CSS1 サポート、CSS2 ほとんどサポート、DOM1、DOM2 と DOM3 の一部をサポート、アラビア文字みたいな右から書く文字もだいじょぶで、SSL もオッケー、と。これが khtml の仕様ね。

つまり、khtml を Quartz に対応させて、Apple が GUI を被せた、というところか。じゃ、このコードは公開されるのか?Safari のページによると、こう書いてある。

「もちろん、Apple はオープンソースの良き市民として、Konqueror オープンソースコミュニーティと、拡張部分を共有します」

文字どおりに捉えるなら、レンダリングエンジンの拡張部分は、ソースが公開されるわけだ。GUI 部分は、どうかなぁー。しないんじゃないかな。でも、これでようやくシステムにまともな HTML レンダリングエンジンが乗るわけだ。それに皮を被せるタイプのブラウザが開発しやすくなる。Windows の世界で、タブブラウザがいっぱいでてるのは、Internet Explorer のエンジンが使えるからでしょ。Mac OS X も、ようやく同じような状況になるわけだ。

SF EXPO ですが、HMDT のイチ押しは Safari だ!Safari は Apple 製の Web ブラウザ。早速ダウンロードしてみたが、速いは、これ、確かに。シンプルすぎる UI も Apple らしくていいし。ブックマークの画面もいい。そうか、ブラウザの画面隠しちゃうのか。思いきったな。でも、ぜんぜん使いにくくならない。

で、ここは HMDT らしくパッケージの中身をのぞいてみた。そうすると、4 つのフレームワークが。

  • JavaScriptCore.framework
  • WebCore.framework
  • WebFoundation.framework
  • WebKit.framework

うーむ、こいつら使いたいぞ。

Apple のサイトによると、オープンソースの Konqueror をベースにしている、と。Mozilla じゃないのか。一体どういうところなんだ?

Jan 5 - December 2002 Developer Tools
keywords: CHUD

おそまきながら、December 2002 の Developer Tools をインストールしました。ダウンロードは ADC のサイトから。今回は、Project Builder、GCC、AppleScript Studio のアップグレードと、CHUD が CD に入ったのと、Sherlock SDK、DiscRecording SDK、CoreAudio SDK、FireWire SDK、ForeceFeedback SDK が新しくなったのと、といったとこですか。

あんまり目玉がなくて、マイナーアップグレードといった感じですか。そんな中で CHUD の話を少し。CHUD Tools は Computer Hardware Understanding Development Tools のことで、ハードウェアとソフトウェアのパフォーマンスを測るためのツール群。これを使えば、かなり詳細にパフォーマンスを調べることができるようです。フレームワークも用意されているので(CHUD.framework)、自前のアプリケーションからも使用可能。

と、いったことはさておいて、個人的には CHUD の特徴は、そのアイコンだと思います。メモリのパフォーマンスを測る CacheBasher のアイコンは、なぜか吠えているゴリラ。システムやプロセスのイベントのパフォーマンスをモニタする MONster は、フランケンシュタイン風のモンスター顔。洗練されたデザインで鳴らす Apple だけに、開発ツールも普通じゃないぜ。

CacheBaser。なぜにゴリラ? MONster。気味悪いモンスター風。

Jan 2

あけましておめでとうございます。今年も、まだ続けると思うので、よろしくおねがいします。

休暇も終わったので、働いてます。もう、去年組んだプログラム忘れてるし。まず、自分の書いたコードの解析からです。


Home | Link | Download | Back Number | Speciall Issue

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

HMDT