HMDT - Logic and Intuition -

about HMDT

HMDT Journal

June, 2007

Jun 30

すでに手に入れた方もいるだろうから、レビューもちらほら見かける。そんな中で、JAM LOGさんのレビューを引用。

ざっと見た感想ですが...まず、タイトルのフォントの力の抜け具合が良いですね。気軽にやってみよう、って気にさせます。あと、ブックカバーが半透明の薄いカバーになっていて、なかなか新しくてオシャレです。プログラミング系の本というとどうも教科書っぽく堅苦しい見た目が多いのでこれはGOOD。

中身は「プログラミング初心者向け」というより「Mac OS Xプログラミングの初心者向け」という印象を持ちました。口調が「です・ます」調でなく、HMDTのサイトで見られる木下さんの口調で書かれていて砕けた感じで親しみやすいです。それでいて変に説明を端折ってないところが良いですね。

えぇ。力抜けてます。とにかく敷居を高くしないように、見た目や読みやすさにはこだわってる。

もういっちょ。yamaq blogさんのレビュー

手に取った第一印象は、厚さに比べて「軽い」でした。紙の重さというのは、読むときに影響するのでこれはいいです。さらにページをめくっての印象は「見やすい」でした。本筋の内容を判断する前から好印象です。

内容に関しても、入門レベルとは言えこれまで見たことのない構成です。プログラミングの本題に入る前に、環境に関する外堀部分を埋めています。疑問に思ったことをすんなり流せないタイプの読者にとって、置いてきぼりにならない構成だと思います。まだ最初の3章くらいまでしか読んでいませんが、これまでの入門書では書かれていない情報が盛りだくさんなので、いろんなCocoa本を購入済みの方にもお勧めできます。

そうなんです。入門向けの本だけど、内容は簡単ではない。むしろ、ベテラン向けの本だったらさらっと流してしまうような事を、しつこく、これは何のために必要なのか?を明らかにしようとしてみた。

たとえば、C言語のHello Worldだと、先頭に「#include <stdio.h>」って文を書く。これを、「呪文だと思ってそのまま書いてください」って説明している入門書は多い。じゃ、これを解説してみよう。Cocoaの場合だと「#import <Cocoa/Cocoa.h>」ってなるわな。この#import文っていうのはヘッダファイルを読み込むもので、つーかその前にヘッダファイルの説明しないといけないな、ヘッダファイルには@interfaceでクラスが定義されていて、って@interfaceの説明もしないといけないし、@interfaceはクラスを定義するもので、ってクラスって何よ?クラスはオブジェクト指向での処理の単位で、だからオブジェクト指向を説明しなきゃ始まらんだろ!

というわけで、Hello Worldの第一行目を説明するのにはこれだけの説明、実際にはもっと、しないといけない。でも、全部説明しきってやったぜ!たのココでは、サンプルとしてHello Worldを作って、そのソースコードが何を意味しているのか一行ずつ説明しているんだけど、そこにたどりつくまで180ページを費やしている。C言語、Objective-C、オブジェクト指向、Cocoaフレームワーク、アウトレットとアクション、を説明しておかないといけないからね。

Jun 28

この中にある、Cocoaはじめの一歩は、Cocoaの初心者向けの入門サイトとしておすすめ。Become an Xcodeという初心者向けドキュメントの日本語訳や、練習問題などもあって充実してます。

Jun 26

たのココプレゼント、もちろん今日もメールを紹介。

Jun 25

たのココプレゼント、今日もたくさんメールが届いた。ありがとうございます。

ところで、プレゼントのページの方で締め切り日が抜けていた。締め切りは、6月30日の夜中の12時まで。今週中ってことね。一週間の短期キャンペーンです。

では、紹介サイトの紹介を。ハングルで紹介してくれているところもアリ。

Jun 24

たのココプレゼント、早速応募していただいて、ありがとうございます。紹介していただいたページを紹介していくね。

まだまだ受付中。WebサイトやBlog持ってなくても問題ないので、お気軽に。

著者のところにも見本誌が届いた。

第一印象。。。軽い!物理的に。これなら、電車の中で片手で持って読んでも大丈夫だ。

あと、ページを開いてそのまま机に置いても閉じない。つまり、そのページを開いておいて、それを見ながらMacでソースコードを入力できる訳だ。

このへんは、前の本を出したときに指摘してもらった点を、編集さんに伝えておいたから。進化してるよ。

本屋や流通によっては、そろそろ現物が置いてあるはず。早速、見てくる。そして、平積みにしてくる。レジの隣に積んでくるのもいいな。

Jun 23

『たのしいCcooca』発売直前に控えて、紹介ページを作った。どういういきさつでこの本を書くことになったのか、書いてみた。

そして、今回もやります、プレゼント企画!HMDT 3rd Editionのときも好評だったので、たのココでもプレゼントやるよ。応募要項を読んで、ぜひご応募を!

先日仕事をしていたら、なんか手足がしびれだす。あれ?と思ってたら、胸に差し込むような痛みが来る。あれあれ?と思ってたら、せきが出てきて、めまいがして、熱が出てきた。

よく分からんけど、よくない症状がまとめて出てきたので、これはイカンということで、帰ってひたすら寝倒す。丸一日寝たら復活。過労だな、たぶん。おかげで、激込みだったらしい山手線に乗らずに済んで、ラッキー。

Jun 21

シイラのサイトの方で、ローカライズをスタートさせた。通常、Macのソフトのローカイラズは、Interface Buiderというアプリケーションを使って.nibファイルを編集するんだけど、それだと敷居が高い。そこで、Webアプリケーションでそれを行えるknyk(コニャックって読む)を開発。それを使って誰でも簡単にローカライズできるようにした。

公開してすぐは、快調にローカライズが行われていたみたい。

が。アクセス多すぎ。というか、攻撃とおぼしきみたいなものが来て、まったくアクセスできない状態に。

これはいかんということで、シイラのWebサイトを置いているshiira.jpを、いったん止める。現在対策中。それが終わったら、再び稼働させる予定。

Jun 20

iPhoneDevCampっていう、iPhone用のWebアプリケーションを作るイベントがあるみたい。発売前にこんな告知を行ってしまう、突っ走りっぷりが素敵だ。

案内の中に、持ってくるもの、ってのがあるんだけど、そこに書いてあるのが、

「iPhone(できれば。必須ではない)」

素敵だ。素敵すぎる。

Jun 19

シイラ 2.1出した。

Windowsにちょっかい出したりして怒られたけど、Mac版もちゃんとやっとります。というか、とうぜんMacがメインです。

Windowsは、どうしてもやる気が萎える。

Jun 16

予想通り解析の進むWindows用のWeb KitとCore Graphicsの使い方。

まずは、AppleからWebKit Support Libraryのヘッダを手に入れよう。CFNetwork、ColorSync、Core Foundation、Core Graphics、CGImageなどのヘッダが手に入る。これは、Web KitがLGPLだから、リンクしているヘッダを公開する必要があるという、ライセンの問題なのかな。

続いて、Web Kitの動作例はGeckoとWebKitに首っ丈、Core Graphicsは最速チュパカブラ研究所を見よう。動いてるよ!

もちろん、HMDTでも作業中であります。

たのしいCocoa』、Amazonで瞬間最大風速的に90位にランクインしてた。Top 100入りだ!予約してくれた方、ありがとうございます。

できたー!

これだと、本気でシイラ for Windowsできるなー。

Jun 15

Safari 3のWeb Kitでは、メインスレッド以外でDOMを触ると文句を言われるようになった。たとえば、メインスレッドではないところでWebViewをdeallocすると、

WebKit Threading Violation - -[DOMNode dealloc] called from secondary thread

とか言われる。メインスレッドで実行できるように変更した。気をつけましょう、みなさん。(普通はやらない)

メインスレッドで実行させたいときは、performSelectorOnMainThread:withObject:waitUntilDone:が便利。

Leopardになって、アニメーションバリバリのインタフェースを作るとなると、メインスレッドとアニメーションスレッドの区別をきちんと付けなくてはいけなくなるんだろうな。

Cocoaプログラミングでは、ウィンドウでの描画周りを触るときはメインスレッドでなくてはいけない、っていう鉄則があるんだけど、Core Animation時代ではどうなるんだろう。

Safari 3のWeb Kitを使うと、シイラでも検索文字の強調表示ができる。

わーい、できたー。

WindowsでCoreGraphics.dllのAPIを叩いている人がいる。最速チュパカブラ研究会。

『たのしいCocoaプログラミング』、いよいよAmazonで予約受付開始!

もうすぐ発売だよ!

Jun 13

WWDC基調講演の感想など。

とりあえず、自分で書いた去年のレポートを読み直してみた。わーお、ほとんど同じだよ。この一年間は、発表した機能のブラッシュアップに努めていた訳ね。

それとは逆に、去年は触れられなかった、Finder、BootCamp、Safariは今回大きな発表があった。去年のレポートでその事を指摘していたのは、先見の明があったと思わない?ね、ね?

アプリケーション屋さんとして一番気になるのは、やっぱりCore Animation。あのデモはすげーな。動きもさることながら、数百におよぶあれだけの数のムービーを読み込んでしまうところがすごい。

実際にあのアプリケーションを作る事を考えると、まずムービーの読み込みに時間がかかる。ピクセルサイズを小さくして、一つが5MB程度としても、数百MBになるわな。と、考えると、あのデモアプリケーションは起動に数分はかかるよな。あらかじめ起動しておいて、ジョブズのプレゼンにあわせて切り替えたってことか。

いまのグラフィックカードとCore Animationによって、大量の画像やムービーデータを、俯瞰するタイプのユーザインタフェースが可能になった。これは非常に面白いので、どんなインタフェースが効果的なのか、HMDT内部で議論中。ただその時に思ったのが、多量のデータを用意するにはローカルでの蓄積が必要になる。ネットワークからのダウンロードでは間に合わない。これからは、ネットワークからデスクトップへの回帰が起こるかも。

個人的にテクノロジーのブレークスルーとして期待しているのは解像度非依存。でも、基調講演では特に情報はなかった。

まぁ、これはデバイスが出てこないと話にならないからなー。Leopard発売と同時に、有機ELを使った超高精細度ディスプレイを持ったMacBook Proの登場を期待。で、1.5倍か2倍の解像度で表示する。これが来たら、コンピューティングは変わるよ。紙より美しくなる。

結局、トップシークレットはSafari for Windowsだったということで。

Safari for Windowsに付いてくるWeb Kitを自分のアプリケーションで動かす件について。

COMを使って、普通にWebViewClassを作り、initWithFrameを呼ぶと落ちる。

原因の推察。特別な初期化処理が必要か?Core Graphics周りとかの初期化をあらかじめやっておかないといけないのかもしれない。InitializeCoreGraphicsとかいう関数があるから、これを呼ぶのかな。

または、Core Foundationを使っているから、そっちのRun Loopをあらかじめ作っておく必要があるのか。そうだとすると、通常のWindowsのウィンドウで表示するのは難しそうだな。

iPhone開発環境は、SDKがなしという時点でテンション萎えまくり。ウィジェット環境のみかー。

ユーザインタフェースに関して言えば、ウィジェットと同等のことができる訳だから、そこそこは出来ると思う。でも、iPhoneが売りにしている派手派手なやつはできないけど。

あと、ウィジェットではJavaScriptからアクセスできるプラグインを作成することができるから、同様の構造があると思う。それを使えれば何かできるかな。たとえば、ネットワークからダウンロードしたリソースをローカルに保存して、読み込むとか。これができればアプリケーションらしいことはできるな。

Jun 12

WWDC基調講演終了。まずは、Safari for Windowsから。

ダウンロードして、インストール。Safariフォルダをのぞいてみる。すると、こんな感じに。

Cocoaプログラマならおなじみの名前が並んでいる。一応解説してみると、

  • CFNetwork.dll
    Core Foundationベースのネットワーク周り。
  • CoreFoundation.dll
    文字列やコレクションといった、基本クラスの提供。
  • CoreGraphics.dll
    低レベルのグラフィックライブラリ。いわゆるQuartz。
  • icu*.dll
    多言語ライブラリ。
  • libtidy.dll
    謎?
  • libxml2.dll、libxslt.dll
    XML周り。おそらくGnomeベース。
  • pthreadVC2.dll
    スレッド周り。pthreadを使用。
  • PubSubDLL.dll
    Publication and Subscribe?
  • SafariTheme.dll
    あの独特のユーザインタフェース。
  • SQLite3.dll
    SQLiteまで入れてるよ。RSSの管理か?
  • WebKit.dll
    本丸のWebKit。
  • zlib1.dll
    zipのライブラリね。

注目すべきは、CFNetwork.dll、CoreFoundation.dll、CoreGraphics.dll、SQLite3.dll、WebKit.dll。これらはMac OS Xの中心となるフレームワーク。こいつらがWindows上で動いているという事は、もうOS Xアプリケーションほとんど持っていけるんじゃないの?Cocoa for Windowsも、作ろうと思えば作れるでしょ。

他にも、Safariの設定はすべて.plistで行っているみたいだし。iTunesやQuickTime Playerと比べると、よりいっそうMac OS Xアーキテクチャに近づいている。

上記のDLLのうち、WebKit.dllはCOMインタフェースも提供している。おぉ、これならすぐ使えるじゃん!

で使ってみたんだけど、、、何かよく分からーん。WebViewClassは作れるんだけど、initWithFrameを呼んだところで例外発生。動かないー。

Safari for Windowsで日本語ページを表示する方法は、こちら(最速インタフェース研究会:Safari for Windows betaで日本語表示する方法)。

Jun 11

新しい本『たのしいCocoaプログラミング』は、あと二週間くらいで発売。

気がついたら、出版社の方で紹介ページが出来ていた。

目次も公開された。全部で20章になっている。前半は、テキストというよりは読み物として読めるようにがんばってみた。後半になると、リファレンスっぽくなってくる。普通のプログラミング本と違うのは、MVCやアウトレットとアクションといったCocoa特有の要素を説明しているところかな。

また、プログラミング言語の解説もちゃんとある。Objective-Cだけでなく、C言語もだ!初心者向けの本だけど、子供だましの内容ではないぜ。丁寧ではあるが、骨太だ。

ISBNも取れたみたい。ISBN978-4-86100-443-8。値段は、税込みで2,940円となっとります。これは、3,000円は切りたいねということで、ページ数や印刷の紙を吟味してこうなりました。前の本よりは買いやすくなったでしょ。

Jun 10

WWDC参加する人は、もうサンフランシスコに着いているんだろうか。

土曜日出発組と日曜日出発組とがいて、土曜の人はもう着いてるね。日曜の人は、これから成田に向かうところか。

なんか、こう、留守番ってのは楽だけど気持ちは落ち着かんものだね。自分で行く方が、気は楽だ。

Jun 7

ここ一年ぐらい、忙しい?と問われれば、忙しいとしか答えよーがねーよ、という日々を送っている。冷静に考えて、やらなくてはいけない事の量が、一日の時間を上回っているから、そらもう無茶な訳で。

とはいっても、忙しい忙しいって、忙しぶっているのもかっこう悪い。もう開き直るというか、優先度をつけて片付けていくしかないねー。

そんな中で、シイラです。シイラの優先度を考えると、まずお金という面で考えるならば、お金に全くならないシイラの優先度は低い。んがっ!そんなこと言ってたら何も出来んぜ。人生は金がすべてではない、という台詞はこういうときに使えばいいのか。正しく言えば、仕事は金がすべてではない、ということか。

ということで、もう強制的に無理矢理シイラの時間を作ることにした。そこで生まれたキーワードは、1日1シイラ。1日のうち、シイラの開発に割く時間を、最低1時間作る。これはもう、無理矢理作る。えー、たった1時間?と、思った方。すいません。やっぱりお金も必要なんで。

という訳で、この宣言を実践に移すべくしばらく続けているんだけど、なんか前進してるかも。1時間だけでも、0よりはマシだ。最近は、作業の内容をシイラのページに書くようにもしているので、そっちも見てね。

リリースを出せるかどうかは、その日の進み具合という事で。

Jun 5

ちょっと頼まれたので、宣伝を。

WWDCの3日目、6/13に、サンフランシスコのApple Storeでポッドキャストのイベントがある。三洋のXactiを使ってビデオポッドキャストをやろうというもので、ボイスバンクっていう会社が主催している。

日本の会社が主催して、スタッフも日本人がいるので、英語に自信の無い方でも気軽に楽しめると思うよ。あと、パーティもあるって。

ここで使うソフトウェア、HMDTもソフトウェアの開発で協力している。

という訳で、WWDCに行かれる方で、動画配信に興味のある方、新しいXactiに触ってみたい方、なんかイベントに参加してみたい方、ただ飯を食べたい方は、ちょっとのぞいてみてあげてくれないでしょうか。

ここから、メールの転載。

アップルストアでビデオポッドキャストイベントを三洋電機さんとやります。世界初の新作カメラと弊社のソフトウェアの紹介、そしてビデオブロガーを集めた催しです。

6月13日(水)6時からアップルストアです。もし動画に興味がおありでしたら、是非いらしてください。動画配信の最新情報、最新機器をお届け致します。

また、同日の8時から3時間でパーティーもあります。こちらは日本企業はもちろん、現地でアクティブに活動している個人や企業が集まるかと思いますので、ネットワーキングにもお役立ていただけると思います。

http://www.voice-bank.co.jp/english/event/070613.html

Jun 2

一年以上ぶりに、Coralをアップデート。Coral 1.2とした。

タイマー機能を追加。-tオプションを使って、Webページ読み込み後に指定した時間待ってから画像を取得する。Flashがあるページなどで活躍。あと、1.1の印刷ダイアログに関するバグフィックスも。

Jun 1

たのココ入稿完了。これで後は、印刷されて、本屋に並ぶのを待つだけ。

たぶん、6月の25日ぐらいに、本屋に登場する。よろしくお願いします。

ジョブズ氏、「iPhone」のサードパーティ対応をうっかり漏らす」よしっ!!!シイラ for iPhone作るぞ!

はっ。ということは、今年のWWDCの隠し球はこれか。しまったー。行くべきだった。

back to top content

Copyright © 2002-2006 HMDT. All rights reserved.