1月 | 2013 | HMDT Blog | ページ 2

カテゴリー : 2013年 1月

PDFと格闘中


久しぶりに、PDFと格闘中。

遠い昔に、PDFからテキストを抽出するという話を書いた事があるけど、その続きって感じですな。

Adobeから取って来れるPDFの仕様書を、ひたすら読む。まずは、座標系の話を中心に読む。あと、テキスト座標系と、グリフ座標系と。しっかりとした仕様書を読むのは楽しい。

meet iさんで「音楽のある情景」紹介


音楽のある情景」、meet iさんで紹介してもらいました。ありがとうございます。

『きっとより身近に、今みんなが聴いている音楽を肌で感じることができるサービスという意味では、最高のアプリだと思います。』と、言っていただきました。

Map Kitのアノテーションは、バックグラウンドで触らない方がいい


音楽のある情景」の絡みで、Map Kitをいじることが多いんだけど。

地図ベースのアプリでは、地図上に多数のアノテーションを作る事になる。ちょっと油断すると、その数は軽く1,000を超える。そこで、このアノテーションの作成や更新をいかに軽くするか、ということが重要になってくる。

ある程度の数がある以上、どんなにがんばっても処理時間は0にはならないので、バックグラウンドに持っていく事になる。そのとき、どこまでもバックグラウンドでやって、どこからをメインスレッドでやるかの見極めがとても重要になる。

Cocoaプログラミングの原則では、ビューに関する操作はメインスレッドでやることになる。じゃあ、ビューじゃなければバックグラウンドでもいいかというと、これがケースバイケースだったりする。

今日はまっていたのは、地図上でアノテーションを表すMKAnnotation。MKAnnotationはプロトコルなんで、それを実装したクラスはこちらで作る事になる。特に親クラスは指定されない。これだったら、バックグラウンドで触ってもいいだろう、と思ってたら、どうもいかんらしい。バックグラウンドスレッドからアノテーションのcoordinateを触ると、どうにも挙動がおかしい。

想像だけど、一度アノテーションがMKMapViewに追加されるとそっちの管理下におかれるみたい。この状態でアクセスするとビューを触るのと一緒になって、バックグラウンドからのアクセスは厳禁、って理屈だろうか?

とりあえず、メインに持っていったら期待通りの挙動になった。難しいのー!

薄いiMacが来た!


発表されて予約可能になってからすぐ購入した薄いiMacである「新しいiMac」。昨年末に出荷されたんだけど、仕事納めで受け取れなかったので、1月になってからようやくてもとに来た。

新しいマシンが来ると、いつの間にやら社員の人がゾロゾロと集まってきて、お披露目会となる。で、届いたブツを受け取ってみると、なんかいつもと違う。箱がななめってる。

これねぇ、箱が台形になってるんですよ。上の方が細くなっている。分かりにくい?じゃあ、2つ並べてみた。

おぉ、ぴったりだ!こうすることで、輸送時のスペースを節約しているんだな。いや、やってないと思うけど。

で、開封しました。じゃーん!

うーん、正面からじゃよく分からん。少し斜めから見ると、

おぉっ!薄いぜ!

もっと斜めから見よう。

こんだけ斜めでもまだ薄いぜ!

真横から見るとこんな感じ。

あー、こうやってみると、それなりに厚さあるね。しかし、前方から見たときの薄さ加減は、かなりの衝撃ものだ。

Retina MacBookと並べてみた。

いやぁ、遜色ない薄さだ。こうして、デスクトップとノートブックの差はなくなっていくのかもしれん。いや、そんなことはないけど。

新しいiMacは薄いだけかぁと思ってたけど、実際に目の当たりにすると、薄さは正義だった。

あけましておめでとうございます


あけましておめでとうございます。今年もよろしくお願いします。

とりあえず、今年の抱負でも述べてみましょうと思いますが、今年はですね、2013年はですね、えーっと、やることは去年とそんなに変わらないかな。粛々といろんなアプリを作り続けます。

一つだけ違うとしたら、今年はOS Xアプリケーションを作りたいなー、と思っております。実際そんな案件も舞い込んでおりますし。iOSだけだと、どうしてもソリューションとして未完成になるし。だからって、ブラウザ+サーバでやると、みったくないものになってしまうし。どう考えてもOS Xアプリケーションにするのが自然だろ、ってものが色々あるので、そんなやつらはOS Xでやります。いやー、久しぶりだな。

どうでもいいけど、iOSだとアプリで、OS Xだとアプリケーションっていいたくなるね。Appleのドキュメントでも、iOSの方はApp、OS Xの方はApplicationって書いてある事が多いような気がする。気のせいかも。