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-
June, 2004

June 28

基調講演見てきたよーん。

詳しい内容は各所で見れるとして、個人的な注目ポイントは、Spotlight、Safri RSS、Automator かな。

Spotlight は、Tiger のキーとなる技術。iTunes で導入された、検索主軸のインタフェースをさらに強化するものだ。ユーザから見ると、たとえば Finder の使い勝手が変わる。右上にあった検索窓は、いままでは遅くて使い物にならなかったし、ファイル名とテキスト内容でしか検索できなかったけど、すさまじく速く、かついろんな内容が検索できるようになる。ユーザから見るとそんなに変化は無いけど、この裏にはとても多くの技術がある。アプリケーションで対応するものもたくさん。

Jobs は、Spotlight のデモをするとき、速さを強調するために、検索するたんびに、「ブゥムッ」「ブゥムッ」って言ってた。

Safari RSS は、文字通り Safari に対する RSS 機能の追加。複数の RSS をまとめて検索できるところぐらいが新しいところか。他にもいろいろあるみたいだが、負けねーぞ。

Automator は、AppleScript による自動化処理をさらに押し進める技術。AppleScript によるコーディング無しで、自動化をあるレベルまで行うことができる。これは、正しいアプローチだと思う。自動化処理はしたいけど、コーディングはめんどくさいもん。コーディング無しでの自動化をどこまでできるか、というのは、もっと追いつめるべきだと思う。アイコンもかわいいし。

その後でのセッションで、さらに詳しい Tiger の機能が紹介されたんだけど。う〜ん、はっきりいってすごい!ここでは書けないんだけど、この間書いた要望は、ほとんどすべて満たされてしまったようだ。

いやぁ、わくわくする。早く、Tiger でプログラミングをしたいぞ!とりあえず、シイラ Tiger を作ってみるか。

その後は、九龍的家頁のあにさんと、エルゴソフトの方々とチャイニーズで食事。おいしかったです。

June 25

HMDT が書きました本、「Happy Macintosh Developing Time! Second Edition」が発売になりました。Amazon でも注文できるようになったね。こちらからどうぞ。

本人は、本屋に確認に行けないのがもどかしいです。

さて、もうすぐ WWDC なわけであります。WWDC に初めて参加することになってるのでワクワクです。巷では、iMac G5 やらでかいディスプレイの噂などがあるようだけど、個人的にはその辺はどうでもよくて、Tiger だよ Tiger!おれは Tiger を見に行くんだよっ!

とはいうものの、Tiger の噂はなーんも聞こえてこない。ファイルシステムの話がちょこっとあっただけか。その噂も Panther のときにあったやつだしなあ。

じゃ、Tiger の予想をするのではなくて、Tiger に欲しいものは何か?ということを、勝手に考えておくとしよう。そもそも OS のアップグレードって、どういう意味であるべきなのか?昔ながらのアカデミックな意味で言うと、OS とはハードウェアとソフトウェアのリソースを管理するもの。たとえば、メモリ管理、I/O 制御、プロセスの生成、とかね。でも昨今、OS が含むソフトと意味するものは、どんどん大きくなっているのはご承知の通り。

Mac OS X は、99 年の登場から、ひたすら基盤を安定させることに力を注いできた。Apple と Mac ユーザにとってはまったく新しい OS に乗り移ったわけだからね。それは必要なことだったでしょ。しかぁし!もう、いいでしょ。そろそろ、次にいこうよ、次へ!

次とは何か?Mac OS が進む次の道とは?それは、一人の Mac 好きの日曜プログラマとして思うのは、Mac OS という OS は、計算機リソースのための OS ではなく、チップベンダのための OS でもなく、ユーザのための OS なんだよ。つまり、デスクトップアプリケーションのための OS なのだ。個人的には、そう考えるのが好き。

だから、Tiger およびこれからの Apple に求めるものは、次世代デスクトップアプリケーションのための枠組みを見せてくれ!っていうことだ。え?MS Office に見られるように、デスクトップアプリケーションはもう完成されているって?そんなことは、全くない!まだまだやることはいっぱいあるぜ!

キーワードはたくさんある。たとえば、噂されるファイルシステムの拡張。パーソナル・コンテンツ・データベースの標準搭載。検索主軸のファイル単位からコンテンツ単位へのアクセス。ドラスティックなカスタマイズを可能にする、新規ユーザインタフェース。Expose をさらに拡張したような、アフィン変換を伴うユーザインタフェース・アクション。Apple Script だけではなく、多様なスクリプト言語に Apple Event を公開。

あぁ、考えれば考えるほど、いくらでも出てくるよ。え?それはただの妄想で、Tiger はぜんぜんそんなことを目指さないって?それは OS ベンダである Apple の仕事ではないって?そーか。そんなら、おれが、、、

June 23

出版社の方に送っていただいた、HMDT 本 Second Edition が届いた。分厚くなったなー。570 ページある。書き過ぎか?本人の感覚だと、これで Cocoa のトピックの 1/4 くらいはカバーしてるんではないでしょうか。

で、Second Edition について「第一版とどちらを買えばいいの?」という質問をいくつかいただいたので、もう一回クリアにしておくね。

まず、Second Edition は第一版の内容を完全に含んでいる。だから、まだ第一版を持っていない人は、Second Edition だけば買えばオッケー。第一版を買う必要は無し。

次に、Second Edition で新しくなった内容はどのくらいか?第一版は全 18 章で構成されている。それに対して Second Edition は 20 章。Cocoa バインディングと Web Kit の 2 章が追加された。さらに、第一版の「Project Builder」の章を、Second Edition では「Xcode」の章として新しく書き直した。だから、Second Edition のうち、3/20 章が完全に新しい内容。

その他にも、細かいところが変わっているところもある。たとえば、Objective-C の章ではカテゴリとプロトコルの説明を追加したし、他の章では 10.3 で新たに導入された NSShadow や NSAlert の説明も追加されている。だからページ数ベースで追加された割合を考えると、追加された 2 章はページ数も多いので、30% ぐらいは新しいページになっている、という言い方もできる。

じゃ、第一版を持っている人は Second Edition を買うべきか?うーむ、これは答えづらい質問だけど。ポイントは Cocoa バインディングと Web Kit に興味があるか、だね。この 2 章はけっこう力を入れて書いた。Web ブラウザを作ってみたい、という人なら、これはもう間違いなく買いだね!

シイラの nightly build が止まっているのは、忙しいという言い訳はしたくないけど、ほんとに忙しいからなのです。なぜかというと、今度引っ越しすることになったので。Web ページの引っ越しではなくて、リアルの引っ越し。東京にいきます。海を越える引っ越しになるので、えらいことめんどくさい。

でも、シイラのコーディングは、時間を見つけてどうにか続けるので。

June 18

いまんとこ、こんな感じになりました。

June 17

シイラ nightly build 040617。

  • Java Script によるウィンドウを開くときに、クラッシュする問題の解決(Thanks to Hetima)

印刷時に、ヘッタとフッタを付けようとして、丸二日 WebHTMLView をあちこちいじってみた。その結果、これはできないな、うん。簡単には付けれないな。少なくとも、0.9.3 ではこの機能はドロップです。印刷時のオプションは、背景の印刷だけか。あ、フレームの指定はできそうだな。

June 15

シイラ nightly build 040615。

  • すべての URL スキームに対応(Thanks to Charles)
  • シイラ印刷パネルの追加。背景の印刷の切り替え

すべての URL スキームに対応というのは、スキームに応じてシステムが適当なアプリケーションを起動してくれるということ。たとえば、webcal: をクリックすると、iCal が立ち上がる。セキュリティ上の不安を感じる人もいるかもしれないので、環境設定のセキュリティパネルにチェックボックスを追加。

印刷パネルでは、背景の印刷の切り替えを追加。印刷機能の拡充のためには、また Web Kit を調べ回ることになる。今回の背景印刷切り替え機能は、どのクラスが提供しているのか探したら、WebPreferences なのかい。setShouldPrintBackgrounds:。これ、ドキュメントにのってないよな。どこかの Safari アップデートのタイミングで追加されたのかねぇ。

最近、プログラミングの方の掲示板で、Cocoa バインディングの話題が盛り上がっている。そこに書き込んでくれている方の 1 人である、グースさんのサイト、Goose's Home PageCocoa で遊ぼう !! が、どんどん充実してきている。

Cocoa バインディングを使った、さまざま実装の実践的なトライアルを、画像を多用して非常に分かりやすく紹介。もちろん、サンプルもダウンロードできる。Cocoa バインディングに興味ある人におすすめ。

June 14

シイラ nightly build 040614。

  • ダウンロード開始時にサイドバーが閉じてしまう問題の修正
  • ダウンロードパネルのレスポンスを向上
  • 印刷機能の実装開始。とりあえず、手を付けてみた

ダウンロードパネルでは、ダウンロード状況の更新頻度を落としてみた。更新はゆっくりになるけど、ユーザインタフェースのレスポンスは向上したはず。

それから、やっと印刷機能の実装を開始。今回は、とりあえずつなげてみただけ。実装予定の機能は、バックグラウンドの色と画像を印刷するかどうかの選択、フレームごとの印刷、日付や URL をヘッダかフッタに表示、といったとこか。どーれ、また WebHTMLView をハックしないと。

前のビルドから導入している、インフォセンターについて、補足説明を。

なんでこれを作ったかと言うと、最初の問題は、ダウンロードが開始されたことをどうやってユーザに通知するか?っていうことだったんだ。シイラでは、ダウンロードをサイドバーに移したでしょ。その事自体は反対する人も多かったけど、まぁとりあえずそれは置いといて。移したけどダウンロード開始の通知を、サイドバーがぱかっと開くことで行う、というのはちょっとやりすぎだよね。いちいちダウンロードするたびに開かれたらかなわん。別の選択肢を用意したい。

では、Safari みたいなパネルを表示するタイプは?あれって、あんまりいい手段ではないと思う。問題点は、ウィンドウのフォーカスがダウンロードパネルに奪われてしまうこと。ダウンロードなんて、バックグラウンドでやってほしいのに、いちいちパネルにフォーカスが移ってしまうのが嫌。さらに、表示されたらクローズボタンをクリックして閉じなくてはいけない。

ということで、表示されてもフォーカスを奪わず、放っておくと自動的に消えてくれるパネルがほしかったんだ。それを実現したのがインフォセンターだ。

インフォセンターは、ダウンロードが開始するか終了するときに表示される。ユーティリティパネルとして表示されるので、フォーカスは移らない。そして、一定時間アクセスしないと、次第に消えていく。消したくないときは、消えて行く途中にマウスをパネルの内部に入ると、再び表示する。つまり、ダウンロード状況に重要な変化が起きたことを通知してくれて、それ以外のときは勝手に消えていく、っていうものだ。

消えるまでの時間を調整するとか、インフォセンター内にダウンロードの停止や再開を行う小さいボタンを追加するとか、まだブラッシュアップする余地はあると思う。個人的にはけっこう気に入っているんだよ、この仕組み。フル操作ができるサイドバー(またはメインのウィンドウ)と、それを補助するための、小さい軽量のパネルっていう組み合わせ。

ちなみに、名前がダウンロードパネルではなくて、インフォセンターなのは、ダウンロード以外の情報も表示する予定だから。たとえば、アンテナの更新情報とかね。

June 11

シイラ nightly build 040611。

  • 検索エンジンまわりの修正
    1.検索エンジンウインドウのテーブルをドラッグ&ドロップで順番入れ替え可能に
    2.検索フィールドでのモデファイアキー+returnに対応
    3.検索フィールドのポップアップメニューで検索エンジンを切り替える機能を仕様変更
    4.検索履歴は語句だけでなく使用したエンジンもそれぞれ記憶する
    5.web検索を実行したらその検索語句をページ内検索に入れる
    (Thanks to Hetima)
  • サイドバーをメニューからトグル可能に (Thanks to Charles)
  • ダウンロードの通知を行う、インフォセンターパネルを追加

まずは、Hetima さん Thanks。検索エンジン周りのインタフェースが、いろいろと強化されましたです。

もう 1 つは、ダウンロードの状態を通知するためのインタフェースである、インフォセンターの追加。これは、、、えーっと、すまん。今日のビルドは疲れた。寝る。明日説明する。簡単に言うと、インフォセンターは、アプリケーションからのノーティフィケーションを表示する、非対話的なパネルで、放っておくと消える。Apple の特許侵害中。

June 9

シイラ nightly build 040609。

  • タブを閉じた後の動作を、Safari 風に変更可能 (Thanks to Hetima)
  • ダウンロードした項目を、日付ごとにフォルダに入れることが可能 (Thanks to Hetima)
  • ボタン長押しの動作を改善。ついでに、Web ページのコンテキストメニューを長押し対応にするかどうか、設定可能

June 8

シイラ nightly build 040608。

  • ダウンロードの最中にクラッシュする問題の解消
  • アクティブなダウンロード項目の保存

とりあえず、すぐにクラッシュすることはなくなったと思う。あと、すべてのウィンドウでダウンロード項目を共有するようにした。機能的にはあまり変わっていないけど、内部的には大変更をかけた。これはつまり、最初の設計がよくなかったってことだな、うん。

シイラについて、いろんなメールをもらってます。ありがたいことです。英語ページを公開してから、日本以外からもどんどんメールが来ます。

そんな中の一つに、

「シイラの Windows XP 版はいつ出るの?もう作っているんだよね。」

というものが。えーっと。これはネタなのか?あまりにも、出るのが当然、という口調で書かれているし。ドイツ人らしいが。

June 6

シイラ nightly build 040606。

  • アドレスバーから Dock にドラッグ&ドロップして、URL 項目を作成。LiTaG に対応 (Thanks to Hetima)
  • 外部アプリからのリンクをタブで開くとき、他のウインドウが前面にあるとうまく機能しない問題の修正 (Thanks to Hetima)
  • ソース表示ウインドウでの文字列検索 (Thanks to Hetima)
  • コンテキストメニューに「画像の場所をコピー」を追加 (Thanks to Charlse)
  • ダウンロードの履歴の実装

この後は、Hetima さんが検索エンジン選択の強化をしてくれるそうで。乞うご期待。

ダウンロード機能は、ノーテイフィケーション用のパネルの実装予定。それが終わったら、印刷だな。

0.9 系のシイラでは、0.9.x が「けっこうメジャーバージョンアップ」。それに対して、0.9.x.x は「マイナーバージョンアップ」になる。マイナーバージョンアップとは、具体的には、ローカライズされたリソースの追加や、致命的な問題の対応になる。だから、nighlty を追いかける場合は、0.9.x.x は無視しても大丈夫。

1.0 以降になったら、また変わるでしょう。

とにかく勢いだけで開発しているシイラ。ソフトの開発プロジェクトで勢いを出すには、動きを見せるということが大切だと思う。ビルドをこまめに出すとか、新規機能はためらわず実装するとか。でもこれって、責任あるソフト開発、っていう視点で見るとだめだめなんだよ。

なにが駄目かっていうと、テストしきれてない。個人的な感想だと、仕事レベルでやるソフトの開発での時間割当は、仕様決定と設計に 30%、コーディングに 20%、テストとデバッグと仕様変更への対応に 50% っていう感じかな。とにかくいちばん時間食われるのは、テストとユーザのフィードバックを受けた後の対応なんだよ。

翻ってシイラを見ると、コーディングが終わったらすぐ公開してしまって、テストの時間がほとんどない状態。掲示板での不具合報告とか見ると、開発者としては忸怩たる思いってやつです。でも、せっかく新しい機能を実装したら、どーだすごいだろ!と、公開してしまいたくなるのも正直な気持ち。今回は、ワイワイ方式でやるって決めたし、nightly build だから保証されていないっていう言い訳もあるし、1.0 の準備に入るまでは、このままでいきます。

なにを言うにも、今の状態ってとっても楽しいんだよ!開発する、ビルド出す、反応がある。それを受けてまた開発する。このフィードバックが働くだけで、開発者冥利に尽きるね。だから、どんどん掲示板に要望出してください。全部目を通してるから。いつになるかは分からないけど、きっと実装するから。シイラ、時間も金も食われてとにかく大変だけど、やめられないっす。

June 4

シイラ nightly build 040604。

  • タブのデザイン調整 (Thanks to Hetima)
  • _blank等のリンク、外部アプリからのリンクをタブで開くオプションを追加 (Thanks to Hetima)
  • ダウンロードパネルをサイドバーに移動
  • ダウンロードの一時停止、再開を実装

_blank と外部アプリからのリクエストを新規タブで開くオプションは、とても要望が多かったもの。ようやく実装できました。Hetima さん、Thanks。

ダウンロードパネルは、サイドバーに移して、とりあえず一時停止と再開を付けてみた。まだ、動くかどうかのトライアルの段階。もっと洗練させていくから、少し待って。いきなりサイドバーが、ぱかっと開くのが嫌な人もたくさんいるのは知っているから、少し待って。終了すると、一時停止の項目が全部消えてしまうのも、少し待って。

ダウンロード一時停止の実装は、どうやって実装したものかちょっと考えたけど、NSURLDownload の API をダンプしてみたら隠し API があったので、結局それを使ってしまった。ほんとはよくないし、自分で実装した方が融通が利くのだが。しかし、Web Kit は隠し API が多いなー。このダウンロードの再開とか、アイコンデータベースとか、WebHTMLView とか。Safari はそれをがんがん使っているんだよな。ま、Objective-C なら丸見えなので、どうにでもなってしまうのだけど。

June 2

シイラ 0.9.2.1 をリリース。主な変更点は、

  • フランス語リソースを追加

あと、Safari のブックマーク共有を外すと、追加したシイラのブックマークが消えてしまう問題を解決。苦労してブックマークを移行したのに、消えてしまった方、ごめんなさいでした。ベータだから、あやまることしかできませんが。

ただいま、また San Jose 出張中。それで気づかなかったんだけど、なんかサーバ止められていたみたいですね、転送量オーバーで。とりあえず、月が変わったから、また戻ったみたい。

シイラのイメージは、sourceforge に移したから、まぁ大丈夫だと思うんだけど。また超えるようだったら、しょうがない、買い足しますか。

ダウンロードパネルだけど、大丈夫。サイドバー開かなくても見れるようにするから。基本的な考え方は、ダウンロードの状況確認は、パネルでも可能。細かい操作はサイドバーで、という感じ。パネルはフローティングにしてしまって、邪魔にならないように。

夜中ホテルでリリース作業。


[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