Backnumber

June, 2006
May, 2006
April, 2006
March, 2006
February, 2006
January, 2006
December, 2005
November, 2005
October, 2005
September, 2005
August, 2005
July, 2005
June, 2005
May, 2005
April, 2005
March, 2005
Feburary, 2005
January, 2005
December, 2004
November, 2004
October, 2004
September, 2004
Augsut, 2004
July, 2004
June, 2004
May, 2004
April, 2004
March, 2004
February, 2004
January, 2004
December, 2003
November, 2003
October, 2003
September, 2003
August, 2003

- HMDT archive-
July, 2005

July 31

10 日ぶりに、シイラのビルド。Nightly build 050731。

  • 暫定的に、Adobe Reader の読み込みを無効化。後日、対策予定
  • ツールチップによる URL の表示のサポート
  • Google Map 等のために、ユーザエージェント変更(Thanks 光岡さん)
  • Google Map 等を、検索エンジンリストに追加(Thanks 光岡さん)
  • 相対 URL で表示している RSS の読み込み(Tiger のみ)

まず、いろいろ調査した Adobe Reader 7。昨日のコメントで教えてもらった通り、Adobe Readerは Safari のパッケージの中にシンボリックリンクを埋め込む。非常に汚らしい。とりあえず真似して、シイラのパッケージにも入れてみた。そうしたら、なんかのフレームワークは読み込むようになったけど、相変わらず起動はしない。つまり、Adobe Reader 7 のインターネットプラグインは、Mac OS X の通常スタイルではない。Safari でだけは動くように、何らかの調整をしている。

どうしようもないんで、とりあえず無効化。プラグインの無効化の方法も、なかなか難しい。でも Web Kit がオープンソース化してくれたおかげで、ソースコードの中をかけずり回って、どうにか理解できた。とりあえず、WebBasePluginPackage クラスをいじくって、読み込まれないようにした。

で、この後どうするかだけど、Adobe Reader 7 のプラグインを動かすのは、やらない。これはあっちの問題だ。そして、シイラにはプラグインマネージャを搭載する予定。これで、OS にインストールされているプラグインを調べて、どれを利用するか指定できるようにする。たとえば、PDF を開くのに、Adobe Reader を使うか、PDF Browser Plugin を使うか、Tiger 以降なら Web Kit の PDF View で見るか、を選択できるようにする。選択した後、Adobe Reader 7 がクラッシュしようが、知ったことではない。

Web Kit でのプラグインの取り扱いは、後日少しまとめてみたい。MIME タイプ毎にどれを使うかが決定されるんだけど、競合する場合は自動的にどれかに決まってしまう。選択する方法がない。あまりよろしくない。

次。ツールチップによる URL 表示。環境設定で、「リンクに URL をツールチップで表示する」を選択すると、ツ−ルチップが出る。これで、ステータスバーを隠してしまっても大丈夫だ。

ちなみに、これは Safari でもできる。ターミナルから defaults を使って、

% defaults write com.apple.Safari WebKitShowsURLsInToolTips -bool true

で、いける。

あと、Google Map を表示するためにシイラのユーザエージェント名を変更したり、検索エンジンリストを更新したり。光岡さん、Thanks。

July 30

Adobe の Acrobat 7 とシイラの問題を調査中。シイラで、Acrobat 7 を使って PDF を表示させようとすると、100% クラッシュする。クラッシュするの場所を調べたら、Acrobat の中だ。

他のアプリでも試してみる。Safari は OK。Web Kit を使ったサンプルプログラムは、NG。ということは、だ。これは Acrobat の問題で、Safari だけは動くように何らかの回避策を行っている臭い。

こうなると、基本的に手の出しようがないね。シイラでは、Acrobat の利用を回避するようにするしかないかもしれん。そのかわり、PDF Kit を使って、シイラ独自の PDF 表示を実装するのは面白いかも。プレビュー相当のことは、できるはず。

このページの情報によると、CodeWarrior のロードマップが公開された模様。CodeWarrior 10 が秋に出て、それが最後。Intel 対応は行われない。んが、PowerPlant と PowerPlant X がオープンソースに!

どうなるのか、詳細を待つ。

July 28

シイラプロジェクトの Web ページがリニューアル!デザインを、スタッフとして参加してくれている、Nitram+Nunca の佐々木さんにお願いした。やっぱり、プロの人にデザインしてもらうと、違うね。すっきりと見やすくて、とてもいい。

July 27

昨日は、仕事の関係で、CG をやっている方といろいろお話をしてきた。そのときに、ShakeMaya を見せてもらった。名前は知っていたけど、実際に使っている方に説明してもらうのは初めて。いやー、おもしろかった。何がおもしろかったって、CG アプリのユーザインタフェースって、Mac 系とはぜんぜん別の発展をしてたんだね。目からうろこが落ちまくり。

その時の話の中に、プロパティウィンドウ(またはインスペクタ)に関するものがあった。Mac 系だとよくあるのは、プロパティをフローティングで表示して、アイテムを選択すると自動的にその情報が表示されるでしょ。でも、昨日話した方曰く、それは使いにくい、と。なぜなら、アイテムの「選択」という行為と、それに対する「編集」っていう行為は、切り離してほしい。連動されては困る。

だから、選択したアイテムの内容を自動的に表示するのではなくて、ボタンを押すなり、メニューから選択するなりして、明示的に編集モードに入る。そして、抜けるときも明示的に抜けるようにしたい、と。

なるほど。説得力がある。確かに、そっちの方が使いやすいかも。ただ、Mac 系では「モーダル」っていう状態に対する警戒意識がある。アプリケーションが特定のモードに入っているということは、それをユーザが常に意識しないといけない、っていうことでよろしくない、ってやつね。ま、そのモードにいるっていうことが、分かりやすく表示されていればいいんだけど。

何にしても、別の文化を覗いてきたような感じで、おもしろかった。

July 22

Safari の RSS データの格納方法を調べてみた。RSS リーダでは、定期的に RSS フィードを読みに行って、ユーザが読むまでそれを保持しておかなくてはいけない。放っておくと、結構な大きさになるはず。Safari は、どこにどうやって保存しているのか?

まず、ヘチマさんのこの記事で、あたりをとる。どうやら PrivateFrameworks にある、Syndication.framework と SyndicationUI.framework が関連しているらしい。Syndication.framework には Feed.xq や FOAF.xq といった XQuery ファイルがある。この辺で、HTML に整形しているのか?

あと、SyndicationAgent.app っていうアプリもある。これが実際にフィードのチェックを行なうアプリか?裏で走ってたのか。

Syndication をキーワードに調べると、ライブラリの下に Syndication っていうフォルダがある。この中にある Database3 が、読み込んだ RSS データらしい。この記事によると、SQLite と Core Data を使っているだろう、とのこと。なるほど。RSS と Core Data は相性が良さそうだな。

Syndication は別フレームワーク、別アプリになっているので、ハックすれば Safari 以外のアプリケーションでも使えるかも。ただ、Core Data 使っているので必然的に Tiger のみになるので、シイラでは使えんなー。

July 21

シイラ nightly build050721。

  • ページホルダにフォントの大きさ変更ボタンを追加
  • Quartz Composer による RSS 表示をサポート(Tiger のみ)

まず、ページホルダに、フォントの大きさを変更できるボタンを追加。これで、サイドバー用のページはもちろん、そうでないページも結構無理矢理詰め込める。はてなアンテナとかも、フォントを最小にすると、結構使えるようになる。

次に、Quartz Composer による RSS のサポート。環境設定で Quartz Composer を選択し、ウィンドウ右上に出る RSS ボタンをクリックすると、Quartz Composer で RSS フィードを表示する。

サンプル画像は、いぬリンクで上に来ていた、MacBS の日常生活的日記さんを勝手に使わせていただきました。

よく使い道が無いと言われる Quartz Composer だけど、これは十分に使えるぜ。今回のビルドでは、テンプレートをそのまま使っている。もっとかっこいい RSS フィード用のコンポジションを作れる方、ぜひ送っていただけませんか。これもいっぱい搭載したいです。

July 20

シイラ nightly build050720。

  • サイドバーにページホルダを追加

サイドバーに、ページを表示できるようにした。こんな風に。

他のブラウザにも、よくあるやつだね。シイラにも、追加しましたよ、と。

ついでに、サイドバーのパネルの選択方式を、タブからポップアップメニューに変えた。これから、もっとパネルを追加するための伏線。

アップルが、Core Data プログラミングガイド(日本語訳)を公開していた。

どうしたんだ、アップル?!最近のドキュメントの翻訳ラッシュは?といっても、月に 2 つか 3 つといった程度だけど。

アップルが翻訳すると、用語の統一がとれるのがうれしい。たとえば、Core Data 用語解説によると、entity はエンティティに、fetch は受信に、managed object は管理対象オブジェクト、になっている。妥当かどうかの議論はさておくとして、とりあえず、アップルはこう呼んでいる、ってものができたのは便利だ。

この調子で、どんどん訳してくれー。

July 19

シイラ 1.1 のダウンロード数が、公開 3 日で 10,000 に到達。ダウンロードしてくれた方、ありがとうございました。

ちなみにダウンロード数は、sourceforge に行けば見れます。シイラ:リリースファイル・リスト。こうやってみると、0.9.3 が、リリースしていた時間が長かったから、いちばん多いな。

シイラ nightly build050719。

  • RSS 1.0 と RSS2.0 の両方に対応(Tiger のみ)
  • RSS ボタンをクリックすることで、RSS を表示(Tiger のみ)
  • HTML のアンチエイリアスの入/切をサポート

RSS サポートは、ボチボチと続けている。RSS から HTML への変換には XSLT を使っているんだけど、久しぶりに使うと、ぜんぜん思い通りに動いてくれなくて、ぶつぶつ言いながらやっている。どうしても、リスト型の言語とは相性が悪いんだよなぁ。

あと、Web ページのアンチエイリアスを切るオプションを追加した。目の都合で、アンチエイリアスを切りたいという人がいたので。

追記:リリースしたイメージに問題があったので、出し直しました。起動しなかった方、もう一度ダウンロードしてください。またゼロリンク切るの忘れちまったよ。

July 17

シイラ nightly build050717。

  • ファイルをダウンロードできない不具合を修正
  • ウィンドウに RSS ボタンを表示。まだ何もしない(Tiger のみ)
  • ソースコードウィンドウの透明化をサポート

まずは、前のビルドでダウンロードができなくなっていた問題の修正。RSS 周りでとばっちりをくらっていました。次に、Web ページに RSS へのリンクが含まれているとき、タイトルバーに RSS ボタンを表示。でも、まだ何もしないです。最後に、ソースコードウィンドウの透明化をやってみた。要望が多かったんで。でも、そんなに使いやすくないような気がする。う〜む。

July 16

昨日は、Poodcasting のセミナーを聴きに、初台のアップルに行ってきた。iTunes でのサポートが始まったんで、力が入っているらしい Podcast 用の音声ファイルはフィードの作り方のお話だった。その中で、Enhanced Podcasting という面白い話が。

Enhanced Podcasting っていうのは、iTunes と iPod 上で、画像と音声をリンクさせることができるファイルフォーマットらしい。これを使うと、Podcast にチャプターを設定できて、チャプターごとに画像やリンクを埋め込むことができる。

チャプターを入れるには、iTunes Music Store からダウンロードできる、ChapterTool というツールを使う。これを使うと、AAC ファイルを変換して埋め込むことができる。そのセミナーでは、GUI から操作できる、SONORAN BLUE さんが作った、Podcast Tool というツールを紹介していた。

これはおもしろい!またおもしろいおもちゃを見つけてしまったので、さっそく遊ぶことにした。Podcast 用とは言っても、要するに曲を流しながら画像を変更することができる訳でしょ。ということは、歌詞の表示ができるじゃん!これをやってみよう!

というわけで作ってみた。かなりやっつけだが、できあっがたのがこの TunesWriter。

機能は、見たらだいたい分かると思うけど、曲を選択して、タイムラインに合わせて歌詞を入力して、それを iTunes で表示させるソフトだ。iTunes での表示はこうなる。

この歌詞が、曲の進行とともに変更される。

使うまでの道のりは、ちょっと大変。まず、iTunes 4.9 が必要。あと、とりあえず Tiger 専用。それがそろっていたら、iTunes Music Store に行って、ChapterTool をダウンロードしてくる。iTunes を起動して、iTunes Music Store にいく。そして、「Podcasts」を選択、次に「Submit a Podcast」を選択。そうすると、フィードの登録画面が出てくるけど、そこは無視して、「Learn more abaout podcasting on iTunes」をクリック。そうすると、「Download ChapterTool Beta」という文が出てくるので、そこからダウンロード。開いたら、適当な場所にコピーしておく。

次。ChapterTool が適用できるのは、AAC ファイルだけだ。そこで、対象となる曲を AAC に変換しておく。iTunes で曲を選択して、コンテキストメニューから、「選択項目を AAC に変換」を選択する。AAC 以外のフォーマットが出てくる場合は、環境設定をいじる。

そして、TunesWriter を立ち上げる。まず、ChapterTool のパスを指定する。ダウンロードした ChapterTool フォルダには、ChapterTool/ChapterToolの下に、ChapterTool というコマンドがある。分かりにくいけど、コマンドのパスを、TunesWriteの環境設定を開いて、そこに書き込む。

で、左下の「Import」ボタンを押して、曲を読み込む。読み込んだら、コンテキストメユーから、チャプターの追加と削除が選べるので、追加して歌詞を書き込む。歌詞を書き込んだら、右下の「Export」ボタンを押す。これで、ChapterTool を使って、歌詞が埋め込まれた AAC ファイルが作成される。これを iTunes で開くと、無事歌詞が表示されるはずだ。

一日で作ったので、かなりボロボロです。まだ作業経過の保存もできないし。あと、ChapterTool で変換されたファイルは、少し特殊なフォーマットになります。たとえば、Finder でプレビューができなかったり、QuickTime で再生できなかったり。オリジナルの曲ファイルは、必ず残しておきましょう。

おもしろそうだから、とりあえず作った。歌詞のフォントとか、背景色とか、画像入れるとか、改良の余地はいくらでもある。でも、そこまでやるかどうかは、思案中。

ダウンロード:
TunesWriter0.1.dmg

July 15

シイラ 1.1 を昨日の夜中にリリースして、一夜が明けましたけど、さっそく世界中から怒られてます。リソースが、誤訳されてるとか、訳が抜けてるとか。あぁ、もう。片っ端から更新していくから。気づいた人は、修正したものを送って下さいと、言い続ける。しばらく、ごたごたが続くんだろうなぁ。

フリーウェア作る人が、ローカライズを渋る理由は分かるよ。一番の理由は、分かんないんだもん。「前のリソースよりこっちの訳の方がいい」っていうメールが来るけど、どっちがいいのか分かんないんだもん。あと、みんなすごく感情的になってくるし。

1.1 のサポートは、それでそれでするとして、次へ進むことも始めよう!ということで、1.2 に向けて、開発を再開。シイラ nightly build 050715。

  • RSS サポートのための開発をスタート
  • ウィンドウでの RSS の表示を実装(Tiger のみ)
  • タイトルバーとツールバーをつなげるオプションを追加(Tiger のみ)
  • ウィンドウが表示されていない状態で、cmd + 数字キーで、ブックマークを開く

と、いうことで、RSS の開発をスタート。

RSS をやるには、XML パーサが必要。Cocoa にも一応あるんだけど、Panther にはかなりしょぼいやつしかない。SAX 相当なんだよね。Tiger になると、DOM が使えたり、XSLT や XPath も使える。

Panther サポートすると言った手前、RSS だけドロップってわけにもいかんだろうし、どうしようかなー、と悩む。選択肢は、

  1. SAX 相当のパーサでがんばる
  2. libxml2 など、別のライブラリを使う
  3. Panther に NSXML 互換ライブラリを実装する

う〜〜〜む、と考えた結果、3 番目の方針で行くことに決定。将来をにらめば、これしかないでしょう。ということで、RSS サポートは、当面は Tiger 上で行います。時期を見て、Panther 上で動かすための互換ライブラリを開発して、Panther でも動かします。そんな感じで。

今回のビルドでは、とりあえず Apple の RSS が表示できる。表示できないページもいっぱいあるけど、ぼつぼつやっていくので。

RSS を表示する箇所としては、ウィンドウ、サイドバー、ブックマークバー、ブックマークメニューなどを考えている。で、ウィンドウの表示には、XSLT を使うことにした。RSS の XML を XSLT にかけて、HTML を作成して表示する、っていうことだ。

今回のビルドは、とりあえず表示しただけのしょぼい HTML だけど、これから改善していく。もし、XSLT を書けたり、RSS 表示の HTML テンプレートをデザインしてくれる方がいたら、送ってください。シイラで使います。もちろん、複数 XSLT をスイッチできるようにします。

リリースは大変だけど、新規機能実装は楽しい。これだから、シイラはやめられない。

July 14

Google Map に関して。

シイラでは、とりあえず、環境設定の『詳細』で、ユーザエージェントを Safari にすると見ることが出来ます。

詳しい調査と対策は、また後で。

シイラ 1.1、出ました。出しました。前回の nightly build あたりがベースになってます。

1.1 は、Mac OS X 10.3.9 以降のサポートとなってます。Panther 復活!前回はサポートできなくてごめん。検証用に、うちのメールマシンはいまだに Panther だし。

あと、今回からローカライズリソースを別にダウンロードしてもらうようにしてみました。これは、本体のアップデートとは別に、リソースのアップデートを行なえるようにするためです。デフォルトでは英語と日本語が入っているので、それ以外が欲しい人は、別個にダウンロードして下さい。

では、試してみて下さい。リリース作業は、毎回クタクタに疲れるよ〜。

July 11

Dashboard で Quartz Composer を動かすためのプラグイン、Quartz Composer Plug-In for Dashboard の公開ページを作りました。セミナーに参加してくれた方々、お待たせしました。

このプラグインを使うと、Quartz Composer のコンポジションを、そのまま Dashboard で動かすことができます。QC の窓口が、一つ増えた、ってことですね。

もう一個のプラグインも、配布ページ作ります。もう少し、お待ちを。

July 5

シイラ build050705。

  • ブックマークメニューのバグを修正。
  • ブックマークメニューに Firefox を表示。

今度こそ、これがリリース候補。1.1 はここまで!あとは、ローカライズだ。

July 3

先日の金曜日、Dashboard ウィジェットプログラミングセミナーを行いました。参加してくれた方、おつかれさまでした。セミナーでは、入門から応用まで幅広く話して、やってる方はすごく楽しかったです。

セミナーで話した、プラグイン配布ページですが、ただいま作成中ですので、少し待ってください。受講者だけでなくて、一般公開にするので、他の方も乞うご期待。

一仕事片付くと、すぐ次の仕事が来る。でもその合間を縫って、シイラも続けていきます。ということで、シイラ build050703。

  • ページ遷移エフェクトのバグを修正。
  • 保存時のデフォルトファイルタイプを記憶。

ページ遷移エフェクトの方は、nVidia 系のグラフィックカードだと問題が発生する、という情報をいただいのでその修正(Thanks おあきさん)。

もう一つの方は、ファイル保存するときのフォーマットに関するもの。現在、HTML と Web Archive の 2 種類を選べるけど、デフォルトの項目を前回選んだものにするようにしました。これで、連続で Web Archive で保存するときも大丈夫。

これに加えて、ブックマークメニューのバグを修正して 1.1 にします。うーむ、予定より一ヶ月遅れてしまった。

RSS は、やります、絶対。7 月は RSS の月だ、今度こそ。


[Home] [Download] [Archives] [BBS] [Cocoa Programming Tips 1001] [Core Foundation の秘密] [Safari Developer Center] [はじめてのブラウザのつくり方] [Sketch BP] [スクリーンセイバーを作ろう] [Objective-C 最適化] [Authorization API 完全理解] [Mac OS X Programming Books Review] [オブジェクト指向の言語比較論] [panther-dev]

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