kanizaのブログ

コンピュータ、ソフトウェア、映画、音楽関連や家族のことなど、思いついたことを書きます。

やなせたかしさんのアンパンマン

アンパンマンの作者である、やなせたかしさんが亡くなったとのこと。

アンパンマンに関する僕のいちばん古い記憶は、まだ小さいころ入院していた時に読んだ絵本。いまのアニメ調じゃなくて、もうちょっと立体感のある絵だったと思う。

アニメのタイミングには間に合わなかったから、アンパンマンとはあまり縁がないまま大人になった。

結婚して、生まれた娘が保育園に通い出したら、さっそくアンパンマンが好きになってた。家ではほとんど触れてないのに、本屋でアンパンマンのあれこれをねだらたりして、アンパンマンおそるべしと思ったものだった。

さらに、梅田のヨドバシカメラのおもちゃ売り場に足を踏み入れたら、巨大な棚がオレンジ色のアンパンマンなおもちゃで埋め尽くされているのを見て、その風景に圧倒された。他にも神奈川に行ったついでに横浜のアンパンマンミュージアムに行ったり、スーパーのゲームコーナーにあるアンパンマン的な機械から出てくるポップコーンを食べたりもした。

やなせさんの生み出したキャラクターで、保育園とか、本屋さんとか、おもちゃ屋さんとか、いろんな場所の風景が変わったわけだよね。それがアンパンマンだったってのは、良いことだったのだと思う。

kaniza 版 THE YELLOW MONKEY ベスト

このあいだ発売された THE YELLOW MONKEY のファン投票によるベスト盤「イエモン」は我が家でも購入して、久々にイエローモンキーワールドに浸りつつカラオケ行きたくなったりしている。

自分でベスト作るならどうなるかなーと考えて「イエモン」と同じ数の 16 曲を選んでみた。

  1. WELCOME TO MY DOGHOUSE
  2. MY WINDING ROAD
  3. O.K.
  4. 天国旅行
  5. 創生児
  6. SWEET & SWEET
  7. ROCK STAR
  8. 薔薇娼婦麗奈
  9. RED LIGHT
  10. ゴージャス
  11. ネバーギブアップ
  12. バンギャルドで行こうよ
  13.  SUCK OF LIFE
  14. サイキック No.9
  15. 熱帯夜
  16. LOVE LOVE SHOW

こんな感じ。曲順はほとんど考えてないけど、これで悪くない気がしている。僕といっしょにイエローモンキーの話をしたりカラオケ行ったりしたことある人なら「やっぱりねぇー」というような、あんまり意外性のない選曲かと。

最初に iTunes のライブラリから「この曲好き」というやつをプレイリストに入れていったら59曲あった。それを泣きながら16曲にまで絞っていってできたのがこれ。iTunes に iMix というプレイリストを公開する機能があったのでそれ使おうと思ったんだけど、どうやら iTunes 11 で消えてしまった模様。残念。

新 MacBook Air との暮らし

4年近くメインで使ってきた15インチ MacBook Pro、性能的にはそれほど不満がないながらも、バッテリーの持ちが悪かったり、重さに我慢できなくなったり、バッテリーの持ちが悪いから移動時には電源アダプタも必須でさらに重たくなったりといろいろしんどくなってきたので、WWDC 2013 で発表された13インチ MacBook Air を購入...して1ヶ月半ほど経った(届いたのは6/29)。 

f:id:kaniza:20130629093009j:plain

僕はUS配列のキーボードじゃないと使えないのでそのへんは Apple Store でカスタマイズ。SSD やメモリも増量した。

f:id:kaniza:20130629094246j:plain

注文から1週間弱で届いた新マシン、CPU の性能はあまり変わらないはずだけど、SSD になったせいか、ずいぶんとサクサク動くように感じる。グラフィックスの性能も良くなったりしてるのかな。

あと売り文句にもなってるバッテリの持ちは確かに素晴らしい。実際、昼すぎからコワーキングスペースでプレゼン準備をして、夜に45分のプレゼンをしてもバッテリは十分に残ってた。これでフツーの時は電源アダプタを持ち運ばずに済みますな。

MacBook Pro はちょっと傷が気になったので、今回は AssistOnSIWA という和紙ベースのケースを購入して使うことにした。質感も含め気に入ってる。

f:id:kaniza:20130711185337j:plain

これからはどこへ行くにも持っていけるぜー! と思ってしばらく持ち歩いてたら、わりと iPhone で事足りてしまうことも多いしやっぱり重たいのは重たいし、何となく肩凝りを感じたりしたので持ち運ぶのはホドホドにすることにした。意味もなく持っていくには重たいけど、理由があればほぼ苦にならない感じですな。勉強会への足取りも軽いというもの。

で、これまでずーっとがんばってくれた 15インチ MacBook Pro には別途外付け HDD をつないで、ビデオや音楽を編集するマシンとして活躍してもらう予定。まだまだ働いてもらいます。

APPLE MacBook Air 1.3GHz Dual Core i5/13.3

APPLE MacBook Air 1.3GHz Dual Core i5/13.3"/4GB/256GB MD761J/A

ほぼ初料理

結婚して7年半、「いつか僕の料理をごちそうするよ」と言いつつマトモな料理を一切しなかった僕が、娘に「今日はパパとふたりで晩ごはん作ろうか」と誘いつつ、ついに台所に立った。

料理の知識がないのでクックパッドを物色。難しいやつは無理なので3つめくらいに見かけた「牛肉とジャガイモの炒め煮」で決定。あとは平野レミさんの砂肝レシピを三谷幸喜さんがポッドキャストなどで紹介してたのが気になってたのでそれにも挑戦してみることにした。

娘は主にジャガイモを切るのを担当。指を切らないかヒヤヒヤしながら見てた。

で、できたのがこれ。

f:id:kaniza:20130707180252j:plain

「炒め煮」ってよくわからなかったけど、炒めたあとに汁を入れて水分飛ばす感じ。砂肝は細かく切って4分ほど茹でたのを、しょう油とラー油を混ぜたタレに1時間ほど漬けた。この2品に注力するため、サラダはカット済みのやつを使わしていただきました。

工夫はパセリ。前に「ためしてガッテン」でやってたように葉っぱの部分を軽くフライパンで焼くとしんなりしてモリモリ食べられるので薬味として添えてみた。

「炒め煮」はフライパンの中の見ため的に「ちょっとコレ食い物にならないかも」とブルーになりかけたけど、盛り付けてみたらそれなりに見れる感じになった。あと刻みネギやらパセリで緑が入るとそれっぽく見える。

肝心の味は、「炒め煮」は甘めの味噌味がよろしい感じで上々。分量とかまったくの目分量だったけどさすがクックパッドですな。砂肝は若干しょっぱすぎた。これはあとで水でよく洗ったらいい感じになったので今回の反省点とする(たぶんもともとそういうレシピなのだけど僕がよくわかってなかったっぽい)。あとパセリを焼くのに油をひくのは不要っぽい。

とにもかくにも、娘といっしょに材料を買いに行って、それなりに協力して作って、反省点はあれどおいしく食べられる(というか、呑める)晩ごはんができてめでたしめでたし。

Michael Jackson The Immortal World Tour の大阪公演を観てきた

 

6/15 の土曜日、家族3人でシルク・ドゥ・ソレイユMichael Jackson The Immortal World Tour の大阪公演を観てきた。ネタバレはなしで感想などを書いておく。

f:id:kaniza:20130615131255j:plain

シルク・ドゥ・ソレイユの公演は今回が初めてだった。どこまで期待してよいのやらわからないまま、それでもあのシルク・ドゥ・ソレイユがマイケルを題材にショーをやるというのだから見逃すわけにはいかないと、高いチケットを購入したのだった。

開演は12:00。午前中に小学校の行事があって、大阪城ホール到着はホントにギリギリだった。席についてみるとスタンドのステージ向かって右側lだいたい45度の中段くらい。まぁまぁのいい感じの席。ちょっとした不安は、娘(6歳)がこういう公演にはあまり慣れていなくて、ひょっとするとイヤがってしまうかもなーというところ。でも娘は大のマイケルファンなので、予告ビデオなどからかなり楽しみにしてくれていたのが好材料。さてさてどうなることやら。



 

開演前、スタンド席でウェーブが起こってそれに参加したりして会場の一体感が高まってきた。テンション上がる上がる。

で、いよいよ開演。

音が大きいのを気にして、耳をふさぎながら見ていた娘。だんだん盛り上がってきた開演10分ほどのところで娘が泣きだしてしまった。「やっぱ音がデカすぎるのかなー」「暗くてコワいのかなー」と心配になったけど、よく見ると目を背けるでもなく、ステージに見入っている。けっきょくすぐに泣きやんで、なんとか持ち堪えられそうで一安心。あとから聞いたら、あまりに激しいパフォーマンスに「あの人、大丈夫なのかな?」と心配になってしまったとのこと。

しばらくしてステージのパフォーマーから手拍子をうながす合図があって、会場全体が手拍子モードに。もちろん僕も手を叩いていたら、娘がその手を制止。まだちょっとノリ切れていない様子。慣れないので、まぁ、しゃーないかなと思いつつしばらくガマンして、ちょっとしたら僕はまた手拍子をうちながら見てた。今度は止められず。

前半が終わって休憩に入るころ、僕はすっかりショーの世界に浸っていて、2回ほどウルッときていた。ふじまるさんはもちろん、娘もすっかり楽しんでくれているようだった。

初めて体験したシルク・ドゥ・ソレイユのショー。マイケルのファンとしては、とても幸せな時間を過ごせたなぁという感想。マイケルの音楽、ダンス、言葉、映像などあらゆる要素が再解釈・再構築されて、一流のパフォーマーたちによる一大エンターテインメントになっていた。マイケルがもし見ていたら喜んだだろうな。マイケル・ジャクソンという稀代のエンターティナーの遺志を受け継いだのが、特定の人ではなくてシルク・ドゥ・ソレイユというエンターテインメント集団だったというのも素晴らしいことだし納得した。

後半含めたショーが終わるまでに、僕は計3回泣いてた(映画 "THIS IS IT" でも3回泣いた)。いやはや、拍手するしかない。こりゃーチケットも高いわけだ。驚いたのは、最初僕の手拍子を制止していた娘が、終盤には自ら手拍子を打ってステージに見入っていたこと。こういう公演でのいい体験ができてないなーと思っていたのでコレは嬉しい。いいもん見せちまった。

終わって出口まで行くとかなりマジな雨が降ってた。カサはない。仕方がないので、手持ちの帽子やらハンカチやらかぶってJRの駅まで雨に打たれて歩くことにした。次の用事もあるのにビショ濡れである。が、しばらく歩いたところで、娘が雨に打たれているのを不憫に思った女性が「カサはもう1本持っているのでどうぞ使ってください」とカサを差し出してくれた。本当に助かりました。ありがとうございます。

僕は別の用事があって、家族とは電車で別れた。娘は帰り道で、会場で買ったパンフレットを熱心に読んでいたそうだ。よほど楽しかったのだろう。今回は遅刻ギリギリだったり、雨に降られたりカサを差し出してもらったりといろいろありつつ、家族でいっしょに素晴らしいショーを体験できたというのが何より嬉しかった。

僕はこのあと、びしょ濡れのシャツを着たまま別の大イベントに参加したので、まだまだ長い一日が続くのだけど、その話はまた今度。

 

イモータル

イモータル

 

Cocoa勉強会関西で Singleton を思いきりdisってきた

昨日(6/1)、はてな京都オフィスで開催されたCocoa勉強会関西で「ワタシは Singleton がキライだ」というタイトルで発表してきた。内容について興味のある方はスライドを SlideShare に載せたのでそちらを見てください。

(2013/6/8 追記: この発表で使ったサンプルとだいたい同じものを GitHub で公開しました。CoreDataBooks ではなく、Core Data アプリのテンプレートをベースにしたものになっています)

 

時間はだいたい30分くらいが基本なんだけど、今回はちょっと気合いを入れて45分枠をもらった。

今回発表したようなテーマには、個人的には10年近く前に Java プログラマをやっていた頃から取り組んでいて、当時からはてなダイアリーに書いたりしてた(この記事とかこの記事とか)。Java 方面では Spring やら Google Guice といった DI コンテナが普及するなど一定の解決を見たのかなぁと思っていた。Java 方面の情勢は5年ほど前からよくわかってないけど。

Cocoa / Objective-C での DI コンテナについては認知度も含めてまだまだこれからなのかなーという印象。

Q&Aでいただいた2つの質問について、その場での回答はいまいちだっので補足しておく。

Q. サブクラスは必要になるの?

質問は、僕がデモに使った CoreDataBooks を Typhoon ベースにしたものが、もともと AppDelegate でやっていた Core Data スタックの初期化処理を、新しく作った NSManagedObjectContext とかのサブクラスのイニシャライザに実装していた件について。つまり、オリジナルにはないNSManagedObjectContext と NSManagedObjectModel と NSPersistentStoreCoordinator のサブクラスを作ってあるというわけ。

いま理解している範囲だと、TyphoonAssembly ではコンポーネント情報を「定義」としてしか記述できないっぽい。ここで直接インスタンスを登録できたりすれば、自分で生成してカスタマイズしたインスタンスをコンテナに入れて、他のコンポーネントに注入できるはず(Java ではそれができるコンテナもある)。

Typhoon ではできないっぽいので、コンテナが生成したときに呼ばれるイニシャライザに細かい初期化処理を記述すべくサブクラスを作っている。もちろんコンポーネント間の接続という部分はコンテナがやってくれるけど、たとえば保存形式をどうするとかっていう調整部分ですな。

発表の時は「だからいまんところサブクラスはいると思ってます」と答えたけど、よく考えたら Objective-C なんだから NSManagedObjectContext そのものに別のイニシャライザをカテゴリで追加することもできるんだよね。それでもよさそうだ。Java 脳になってたらしい。

質問の意図としては「そうやってクラスが増えてしまうのは嬉しくないかもなー」というのがあったのかなと想像している(あくまで想像)。そして、それはカテゴリにしても同じような疑問があるような気がしている。

たしかにクラスとかカテゴリは増えると思う。そしてそれがイマイチな感じがするのもすごくよくわかる。

ただ、ソフトウェアのコンポーネントという視点で見たときに、そのコンポーネントの初期化処理はそのコンポーネント自身が知っていて、他の人は関知しないというのもこれはまたアリな価値観ではないかなと思っている。初期化処理なんだからイニシャライザでやろうよ、とも思ったり。そのためにクラスやらカテゴリが増えるのなら、しゃーないか、と。

Q. 設計上、離れた場所にあるコンポーネントの参照が欲しくなったときにはやっぱりコンテナから取得するの?

これも回答ではいろいろ話したけど、われながらわかりにくかったと思う。

質問のイメージとしてはこういう感じじゃないかな。

"Foo クラスを実装しています。Foo のある処理で Bar オブジェクトを生成します。それには Buzz が必要なんだけど、Foo は Buzz を知らない"

この時に、Foo はコンテナ経由で Buzz を取得して、Bar を生成するのかどうか。だとしたらコンテナはどうやって取得するのか。それはもちろんシングルト…いやいやいや、それじゃあ Singleton をdisってる場合じゃなくなるわけです。

おすすめできる解決方法としては2パターンある。

1つは、Foo に必要なんだったら最初から Bar をコンテナで注入してやる。これで生成する必要はなくなる。ただ、Bar の生成をどうしても遅らせたかったり、複数回生成する必要があったりするとこれは使えない。

そういう場合はもう1つのパターンで、Bar を生成する BarFactory クラスを作って、BarFactory を Foo に注入する。BarFactory は Buzz を注入されている。Foo は Buzz を知らなくても、BarFactory で Bar を好きなだけ生成できる。

おすすめできない第3のパターンは、Bar に Buzz を注入しておいて、それを使って Bar を生成する方法。これでも目的は達成できるけど、Foo には本来必要ない Buzz への依存ができてしまう。Buzz だけならまだしも、Bar の生成に 4 つくらいオブジェクトが必要になったらそれを全部 Foo に持たせるのはかなりダルそうだよね。生成に必要な情報は専門の Factory オブジェクトに集約する。

Q&Aの補足はこんなとこかな。

僕自身は Java プログラマ時代に DI コンテナで Singleton とオサラバしてから、オブジェクト指向プログラミングについて見える世界がガラっと変わったので、そーいう感覚で Cocoa のコードも書きたい気持ちがあるんだよね。Objective-C の動的性質をうまく使えば DI コンテナなんてややこしいものがなくても問題解決できるのかもしれないとも思ってたけど、どうもそうでもなさそうなので DI コンテナを本格的に調査してみている。

今回は Singleton をdisるという名目で、Singletonへの問題意識はあるていど共有できたのではないかと思う。でもその解決方法としての DI はちょっとやそっとでは伝わらないし、僕自身 Cocoa で本当に有効かどうかの確信もないので、引き続き取り組んでいくつもり。

はじめての子ども遊び

4月から小学校に通いはじめた娘。朝は集団登校だ。

その集団登校の班長さんをやってくれている6年生の女の子が、娘を遊びに誘ってくれた。せっかくの機会ということで遊びに行かせることに。

とはいえ、親の目から離れて子どもだけで遊びに行くのはこれがはじめて。誘ってくれた子はやさしくてしっかりしていそうなんだけど、ちょっと心配と言えば心配。お昼過ぎに女の子が迎えにきてくれて、「気をつけるんだぞ」と娘に念を押して送り出したあと、親は家でそれぞれの作業をしていた。

途中、女の子の携帯から電話がかかってきたり「お腹がすいた」と帰ってきたり、都度状況がわかったのでけっきょくあまり気をもむこともなく、4時半ぐらいまで遊んでもらった。

班長さんの子と、その同級生の女の子と3人で遊んでいたそうだ。ウチの玄関に来てくれたのは班長さんだけだったから娘に聞くまで2人だと思ってた(後日、やっぱり2人だったことが判明)。

6年生の子たちがウチの娘と遊んで楽しかったのかどうかはよくわからないけど、娘はとても楽しんだ様子。親としてもはじめて子どもだけで遊びに行かせたということで1ステップ進んだ感があり、班長さんと同級生の子には感謝したい。

それにしても班長さんの子はスマートフォンを持っていたり LINE で連絡してきたりと進んでいる。Temple Run もうまいらしい。6年生ってことは 21 世紀生まれってことだよな。さすが。