|
Backnumber 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-
|
|
基調講演見てきたよーん。 詳しい内容は各所で見れるとして、個人的な注目ポイントは、Spotlight、Safri RSS、Automator かな。 Spotlight は、Tiger のキーとなる技術。iTunes で導入された、検索主軸のインタフェースをさらに強化するものだ。ユーザから見ると、たとえば Finder の使い勝手が変わる。右上にあった検索窓は、いままでは遅くて使い物にならなかったし、ファイル名とテキスト内容でしか検索できなかったけど、すさまじく速く、かついろんな内容が検索できるようになる。ユーザから見るとそんなに変化は無いけど、この裏にはとても多くの技術がある。アプリケーションで対応するものもたくさん。 Jobs は、Spotlight のデモをするとき、速さを強調するために、検索するたんびに、「ブゥムッ」「ブゥムッ」って言ってた。 Safari RSS は、文字通り Safari に対する RSS 機能の追加。複数の RSS をまとめて検索できるところぐらいが新しいところか。他にもいろいろあるみたいだが、負けねーぞ。 Automator は、AppleScript による自動化処理をさらに押し進める技術。AppleScript によるコーディング無しで、自動化をあるレベルまで行うことができる。これは、正しいアプローチだと思う。自動化処理はしたいけど、コーディングはめんどくさいもん。コーディング無しでの自動化をどこまでできるか、というのは、もっと追いつめるべきだと思う。アイコンもかわいいし。 |
|
その後でのセッションで、さらに詳しい Tiger の機能が紹介されたんだけど。う〜ん、はっきりいってすごい!ここでは書けないんだけど、この間書いた要望は、ほとんどすべて満たされてしまったようだ。 いやぁ、わくわくする。早く、Tiger でプログラミングをしたいぞ!とりあえず、シイラ Tiger を作ってみるか。 |
|
その後は、九龍的家頁のあにさんと、エルゴソフトの方々とチャイニーズで食事。おいしかったです。 |
|
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 の仕事ではないって?そーか。そんなら、おれが、、、 |
|
出版社の方に送っていただいた、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 ページの引っ越しではなくて、リアルの引っ越し。東京にいきます。海を越える引っ越しになるので、えらいことめんどくさい。 でも、シイラのコーディングは、時間を見つけてどうにか続けるので。 |
|
シイラ nightly build 040617。
|
|
印刷時に、ヘッタとフッタを付けようとして、丸二日 WebHTMLView をあちこちいじってみた。その結果、これはできないな、うん。簡単には付けれないな。少なくとも、0.9.3 ではこの機能はドロップです。印刷時のオプションは、背景の印刷だけか。あ、フレームの指定はできそうだな。 |
|
シイラ nightly build 040615。
すべての URL スキームに対応というのは、スキームに応じてシステムが適当なアプリケーションを起動してくれるということ。たとえば、webcal: をクリックすると、iCal が立ち上がる。セキュリティ上の不安を感じる人もいるかもしれないので、環境設定のセキュリティパネルにチェックボックスを追加。 印刷パネルでは、背景の印刷の切り替えを追加。印刷機能の拡充のためには、また Web Kit を調べ回ることになる。今回の背景印刷切り替え機能は、どのクラスが提供しているのか探したら、WebPreferences なのかい。setShouldPrintBackgrounds:。これ、ドキュメントにのってないよな。どこかの Safari アップデートのタイミングで追加されたのかねぇ。 |
|
最近、プログラミングの方の掲示板で、Cocoa バインディングの話題が盛り上がっている。そこに書き込んでくれている方の 1 人である、グースさんのサイト、Goose's Home Page の Cocoa で遊ぼう !! が、どんどん充実してきている。 Cocoa バインディングを使った、さまざま実装の実践的なトライアルを、画像を多用して非常に分かりやすく紹介。もちろん、サンプルもダウンロードできる。Cocoa バインディングに興味ある人におすすめ。 |
|
シイラ nightly build 040614。
ダウンロードパネルでは、ダウンロード状況の更新頻度を落としてみた。更新はゆっくりになるけど、ユーザインタフェースのレスポンスは向上したはず。 それから、やっと印刷機能の実装を開始。今回は、とりあえずつなげてみただけ。実装予定の機能は、バックグラウンドの色と画像を印刷するかどうかの選択、フレームごとの印刷、日付や URL をヘッダかフッタに表示、といったとこか。どーれ、また WebHTMLView をハックしないと。 |
|
なんでこれを作ったかと言うと、最初の問題は、ダウンロードが開始されたことをどうやってユーザに通知するか?っていうことだったんだ。シイラでは、ダウンロードをサイドバーに移したでしょ。その事自体は反対する人も多かったけど、まぁとりあえずそれは置いといて。移したけどダウンロード開始の通知を、サイドバーがぱかっと開くことで行う、というのはちょっとやりすぎだよね。いちいちダウンロードするたびに開かれたらかなわん。別の選択肢を用意したい。 では、Safari みたいなパネルを表示するタイプは?あれって、あんまりいい手段ではないと思う。問題点は、ウィンドウのフォーカスがダウンロードパネルに奪われてしまうこと。ダウンロードなんて、バックグラウンドでやってほしいのに、いちいちパネルにフォーカスが移ってしまうのが嫌。さらに、表示されたらクローズボタンをクリックして閉じなくてはいけない。 ということで、表示されてもフォーカスを奪わず、放っておくと自動的に消えてくれるパネルがほしかったんだ。それを実現したのがインフォセンターだ。 インフォセンターは、ダウンロードが開始するか終了するときに表示される。ユーティリティパネルとして表示されるので、フォーカスは移らない。そして、一定時間アクセスしないと、次第に消えていく。消したくないときは、消えて行く途中にマウスをパネルの内部に入ると、再び表示する。つまり、ダウンロード状況に重要な変化が起きたことを通知してくれて、それ以外のときは勝手に消えていく、っていうものだ。 消えるまでの時間を調整するとか、インフォセンター内にダウンロードの停止や再開を行う小さいボタンを追加するとか、まだブラッシュアップする余地はあると思う。個人的にはけっこう気に入っているんだよ、この仕組み。フル操作ができるサイドバー(またはメインのウィンドウ)と、それを補助するための、小さい軽量のパネルっていう組み合わせ。 ちなみに、名前がダウンロードパネルではなくて、インフォセンターなのは、ダウンロード以外の情報も表示する予定だから。たとえば、アンテナの更新情報とかね。 |
|
シイラ nightly build 040611。
まずは、Hetima さん Thanks。検索エンジン周りのインタフェースが、いろいろと強化されましたです。 もう 1 つは、ダウンロードの状態を通知するためのインタフェースである、インフォセンターの追加。これは、、、えーっと、すまん。今日のビルドは疲れた。寝る。明日説明する。簡単に言うと、インフォセンターは、アプリケーションからのノーティフィケーションを表示する、非対話的なパネルで、放っておくと消える。Apple の特許侵害中。 |
|
シイラ nightly build 040609。
|
|
シイラ nightly build 040608。
とりあえず、すぐにクラッシュすることはなくなったと思う。あと、すべてのウィンドウでダウンロード項目を共有するようにした。機能的にはあまり変わっていないけど、内部的には大変更をかけた。これはつまり、最初の設計がよくなかったってことだな、うん。 |
|
シイラについて、いろんなメールをもらってます。ありがたいことです。英語ページを公開してから、日本以外からもどんどんメールが来ます。 そんな中の一つに、
というものが。えーっと。これはネタなのか?あまりにも、出るのが当然、という口調で書かれているし。ドイツ人らしいが。 |
|
シイラ nightly build 040606。
この後は、Hetima さんが検索エンジン選択の強化をしてくれるそうで。乞うご期待。 ダウンロード機能は、ノーテイフィケーション用のパネルの実装予定。それが終わったら、印刷だな。 |
|
0.9 系のシイラでは、0.9.x が「けっこうメジャーバージョンアップ」。それに対して、0.9.x.x は「マイナーバージョンアップ」になる。マイナーバージョンアップとは、具体的には、ローカライズされたリソースの追加や、致命的な問題の対応になる。だから、nighlty を追いかける場合は、0.9.x.x は無視しても大丈夫。 1.0 以降になったら、また変わるでしょう。 |
|
とにかく勢いだけで開発しているシイラ。ソフトの開発プロジェクトで勢いを出すには、動きを見せるということが大切だと思う。ビルドをこまめに出すとか、新規機能はためらわず実装するとか。でもこれって、責任あるソフト開発、っていう視点で見るとだめだめなんだよ。 なにが駄目かっていうと、テストしきれてない。個人的な感想だと、仕事レベルでやるソフトの開発での時間割当は、仕様決定と設計に 30%、コーディングに 20%、テストとデバッグと仕様変更への対応に 50% っていう感じかな。とにかくいちばん時間食われるのは、テストとユーザのフィードバックを受けた後の対応なんだよ。 翻ってシイラを見ると、コーディングが終わったらすぐ公開してしまって、テストの時間がほとんどない状態。掲示板での不具合報告とか見ると、開発者としては忸怩たる思いってやつです。でも、せっかく新しい機能を実装したら、どーだすごいだろ!と、公開してしまいたくなるのも正直な気持ち。今回は、ワイワイ方式でやるって決めたし、nightly build だから保証されていないっていう言い訳もあるし、1.0 の準備に入るまでは、このままでいきます。 なにを言うにも、今の状態ってとっても楽しいんだよ!開発する、ビルド出す、反応がある。それを受けてまた開発する。このフィードバックが働くだけで、開発者冥利に尽きるね。だから、どんどん掲示板に要望出してください。全部目を通してるから。いつになるかは分からないけど、きっと実装するから。シイラ、時間も金も食われてとにかく大変だけど、やめられないっす。 |
|
シイラ nightly build 040604。
_blank と外部アプリからのリクエストを新規タブで開くオプションは、とても要望が多かったもの。ようやく実装できました。Hetima さん、Thanks。 ダウンロードパネルは、サイドバーに移して、とりあえず一時停止と再開を付けてみた。まだ、動くかどうかのトライアルの段階。もっと洗練させていくから、少し待って。いきなりサイドバーが、ぱかっと開くのが嫌な人もたくさんいるのは知っているから、少し待って。終了すると、一時停止の項目が全部消えてしまうのも、少し待って。 ダウンロード一時停止の実装は、どうやって実装したものかちょっと考えたけど、NSURLDownload の API をダンプしてみたら隠し API があったので、結局それを使ってしまった。ほんとはよくないし、自分で実装した方が融通が利くのだが。しかし、Web Kit は隠し API が多いなー。このダウンロードの再開とか、アイコンデータベースとか、WebHTMLView とか。Safari はそれをがんがん使っているんだよな。ま、Objective-C なら丸見えなので、どうにでもなってしまうのだけど。 |
|
シイラ 0.9.2.1 をリリース。主な変更点は、
あと、Safari のブックマーク共有を外すと、追加したシイラのブックマークが消えてしまう問題を解決。苦労してブックマークを移行したのに、消えてしまった方、ごめんなさいでした。ベータだから、あやまることしかできませんが。 |
|
ただいま、また San Jose 出張中。それで気づかなかったんだけど、なんかサーバ止められていたみたいですね、転送量オーバーで。とりあえず、月が変わったから、また戻ったみたい。 シイラのイメージは、sourceforge に移したから、まぁ大丈夫だと思うんだけど。また超えるようだったら、しょうがない、買い足しますか。 |
|
ダウンロードパネルだけど、大丈夫。サイドバー開かなくても見れるようにするから。基本的な考え方は、ダウンロードの状況確認は、パネルでも可能。細かい操作はサイドバーで、という感じ。パネルはフローティングにしてしまって、邪魔にならないように。 |
|
夜中ホテルでリリース作業。 |