Yokomark Press

Android Dialogs!

DroidKaigi 2016 の初日に収録していたのですが、ついに Android Dialogs のチャンネルに収録回がアップロードされました。

DroidKaigi で、よく知っている Android Dialogs というチャンネルに出られたのは本当に貴重な体験でした。自分で自分のビデオを見るのはむず痒い感じしかないですが、収録中はとても楽しく会話ができてよかったです。

27th Birthday

本日無事に27歳になりました。そして、Drivemode の日本ブランチを登記したのはちょうど一年前の今日なので、日本ブランチは1歳を迎えました。

26歳の間に DroidKaigi が2回開催され、そのどちらも運営として関わってきましたが、特に2回目のときは海外の人たちとの交流が出来て最高でした。 26になった当初思い描いていたこととは多少違う部分もあったりしますが、27歳も最高と言える感じになるように頑張りたいと思います。

ちなみに DroidKaigi では Android Dialogs の収録をしたので、そのうち YouTube に流れてくると思います。

最後に、例の干し芋のリスト: http://www.amazon.co.jp/registry/wishlist/2Y880HXG49I0M

DroidKaigi 2016 の運営をしてきた

去年の DroidKaigi 2015 でもスタッフとして参加していましたが DroidKaigi 2016 でもスタッフとして参加させていただきました。

前回は必要な物の調達と当日の写真係でしたが、今回は広報係として、twitter や facebook ページの中の人になりました。

事前準備

当日はきっとなんやかんやバタバタするんだろうなと思っていたので、予め決め打ちで twitter に流せるものは tweetdeck のスケジュール機能を活用して入れておくことにしました。セッションの開始 10 分前に各セッションの予告を流すのと、朝の挨拶、一日の終りの挨拶を入れてありました。

このおかげで当日はその時必要なタスクに集中できました。よかった。ただ、スケジュールした時刻の AM と PM を間違えて夜中にセッションのお知らせを出してしまったのは反省。

当日

何はなくとも tweetdeck で常に DroidKaigi でエゴサしたタイムラインを流し、スパムを見つけた端から狩っていきました。 初日の基調講演の最中にトレンドに入ったのを確認したので、そこからハッシュタグやキーワードを含めたスパムツイートをしているアカウントを通報して回りました。

それ以外では、落し物の連絡を twitter に流したり、各会場の雰囲気やおやつ・お弁当の写真を上げたり、企業ブースの様子もちょいちょい上げたりしました。

こう見ると結構遊んでますね……

当日「これも twitter に流したいな!」という要望が突発的に出てくることが多々あって、必要な物は事前準備でスケジュールしておいて本当に良かったなと思いました。

それから、海外のエンジニアの方で未だ DroidKaigi の存在を知らなかった方々からもいろいろリプライをもらうことが出来て地味に嬉しかったです。

後日

実はまだ全てのお仕事が終わったわけではありません。セッションの各動画をこれからアップロードしたり、資料のまとめをあげたりと、いろいろお知らせすることがあります。 これらは順次手を付けて行きます。

おわりに

Twitter の運用に関しては、初日こそスパムがいろいろ出てきましたが、二日目は完全にスパムがいなくなったので平和でした。tweetdeck が便利すぎますね。

個人的には、DroidKaigi の公式アプリの開発にも関わることが出来たし、海外スピーカーの人たちと話す機会もあって、楽しい DroidKaigi になりました。 懇親会で寿司🍣とビール🍻をおいしく楽しめて良かったです。

余談

そんな日本語教えたの誰…… 😂

2015 Year Review

こちらアメリカ西海岸はいま大晦日です。いよいよ本格的に 2016 年が来そうなので、その前に 2015 年を少し振り返っておこうかと思います。

仕事としては、Drivemode の日本法人が立ち上がってオフィスが引っ越したというのと、DroidKaigi 2015 の運営スタッフとして、一つの大きなイベントに携わったことがありました。 あとは、Qiita に記事を書きまくったり、potatotips や Android All Stars に登壇したりと、とにかく Drivemode の知名度を上げてこ☆なことを個人的に楽しんでいたりもしました。

Qiita: http://qiita.com/KeithYokoma SpeakerDeck: https://speakerdeck.com/keithyokoma

今年こそはと思って、年末には Android Advent Calendar に登録し、無事投稿することが出来ました。 Qiita のコントリビューション数が 10,000 を超え、未だに1年以上前の記事にもストックが付いているのを見ると、いい加減メンテしないといけないなぁと思いつつ、なかなかできていないので、来年はそのあたりも拾っていけるようになると良いと思っています。 それから、仕事で見ている領域がかなり尖っているのもあって、かなりニッチな記事ばかり書いていた気がします。GitHub もニッチなものが増えているので、もうすこし汎用的なものが作れたら良いなぁ。

趣味の面では、自転車で色んな所に出かけました。日帰りで100km以上の小旅行は、クタクタになりつつも色んな景色を見ることが出来て楽しかったです。

うまくできたこと、できなかったこと、いろいろあって、それぞれに学びがあり、もっと良くしていきたいと思ったこともある反面、まだまだ至らない点がたくさんあるなと感じた一年でした。少しずつステップアップしていけると良いかな。

2016 年も引き続き、よろしくお願いします。

杉江さんと私

この記事は、SHIROBAKO Advent Calendar 2015 12 日目の記事です。勢い良く参加登録したものの、本人がサンフランシスコ出張のため日付がこんがらがっています(日本標準時-17時間が西海岸の時間です)。

今回は、SHIROBAKO の物語を見ていくうえで「杉江さん」は欠かせない存在だと思ったので、僭越ながら筆を執らせていただきます。ネタバレを多分に含むので、これから SHIROBAKO をご覧になる方はお気をつけ下さい。

杉江さんと仕事

ご存知の通り、杉江さんは業界歴の長い優しい風体のおじいさんとして登場します。当初はえくそだす!とは別のアニメーションに携わっていましたが、えくそだす!のピンチに際して、納期が厳しくかつ難しいシーンを任された時に、社内の原画マンたちを束ねて無事完成までもっていったあの一連の流れは、誰もが息を呑んで見守っていたことと思います。

そんなすごい仕事をバリバリこなす杉江さんですが、SHIROBAKO のストーリーの随所で、杉江さんの仕事に取り組む姿勢が描かれています。

才能っていうのは、何よりまずチャンスをつかむ握力と、失敗から学べる冷静さだと思う。絵の上手い下手はその次だ。 僕は僕より上手い人間が、わずかな自意識過剰やつまらない遠慮のせいで、チャンスを取りこぼしてきたのを何度も見た。 惜しいと思うよ、未だにね。僕は運が良かった。

SHIROBAKO 22話

作監補佐というチャンスを前に日和っていた絵麻ちゃんに掛けた一言。自分の技術にまだ自信がなく、より大きな技量を必要とする仕事は無理なのでは、という気持ちでいた絵麻ちゃんの心境は、きっと技術を売りにする人なら誰しも一度は抱くことがあるんじゃないでしょうか。

そんな気持ちに負けないよう、でもちゃんと安心感のある言葉がこのアドバイスには詰まっていると思います。チャレンジに失敗はつきものですが、やはり失敗するのは怖いもの。でも、その失敗をちゃんと振り返って次に繋げられれば、結果良しとなるのだから、安心してよいのだよ、という意味が込められているこのアドバイスは、杉江さんのセリフのなかでもとても好きなものの一つです。

一方で、こんなアドバイスもしています。杉江さんも、これまでの長い経歴のなかで積み上げてきた努力があったからこそ、22話のアドバイスにつながったんだなって思います。

速く描くには上手く描く。 上手く描くにはいっぱい描く。 いっぱい描くには速く描く。 技術とスピードは実はまったく別の問題でね。

SHIROBAKO 7話

すこし脇道にそれますが、何となく、以下のツイートを見た時に、杉江さんのこのアドバイスとつながるところがあるなって思いました。

自分は業務以外は完全にオフに切り替わってしまうのですが、かと言って勉強をしないかというとそういうことでもないです。業務の中でも、もっといいやり方はないか考えますし、勉強のやり方という意味では本当にいろんな方法があるんだと思います。どのようなやり方であっても、それが自分に合ったやり方でうまくこなせるのであれば、自然とスピードもスキルもついてくるような気がします。 ただ一つ、しなきゃいけないでやるよりは、したくてすることのほうが圧倒的にやりがいがあるなって思っています。

杉江さんと家族

もう一つ、杉江さんを語る上で欠かせないのが「家族」です。SHIROBAKO の中では、えくそだす!のピンチを助けるシーンで杉江さんの奥さんが登場します。

杉江さんがどのような家族を築いてきたのかは分かりませんが、杉江さんが決断を下した後の奥さんの言葉は本当に素敵だと思っています。

奥さん:杉江は受けるつもりみたい、でも少し作戦が必要だって 杉江さん:明日から帰りが遅くなるよ 奥さん:お弁当2つ、作らないとね

SHIROBAKO 12話

頼もしすぎる……

絵コンテを見て、超絶難易度の作画でも「やろう」と決断する杉江さんもかっこいいですし、それを影から支えるために出来ることをサッと引き出せる奥さんもかっこいい。まさに、縁の下の力持ちという感じです。

奥さんも昔アニメーターだったことが作中で描かれているので、きっと細かい事情も含めての理解があるんだと思いますが、こんなふうに家族に支えられているってすごく幸せなことだと思います。思いやりが溢れた家族、いいですよね。

杉江さんと私

自分は社会に出てまだ4〜5年ほどで、杉江さんのようなベテランと言うほど豊富な経験があるわけではありません。どちらかと言えば、宮森のような感じで、自分の将来はどうしたいかということを漠然としか考えていなかったところもあり、ただ、現状のままではきっとダメだという気持ちだけで、藻掻いて来た結果が今なんだと思っています。今は自分の仕事にとても楽しく取り組めています。悩み事も絶えない仕事ですが、それはそれで勉強になることも多いので、楽しくやっています。

好きな事をして食べていけるのは幸せなことだ。だけどそのうち描くだけじゃ物足りなくなってくる「何か新しい目標」が必要になってくるんだ。

SHIROBAKO 8話

ただ、藻掻き苦しんでいる時でも、いつかきっと役に立つ日が来ると思えたり、そこで何とか作り上げたものが世の中に広まっていくところを見るのはすごく楽しい思い出として残っていますし、今後同じような状況にハマったとしても、やはり次に繋げるという意思で取り組んでいけると信じています。

宮森さんがアンデス・チャッキーを観て笑顔になってくれたのなら、こんなにうれしいことはないよ。

SHIROBAKO 12話

そして最後に、自分たちが頑張って取り組んだことに価値が生まれて、こんなふうに語れる日が来ることを願ってやみません。

取り留めのない話になってしまいましたが、つまり何が言いたいかというと、杉江さんみたいな、すごくて謙虚で優しい神様のような人が身近にいたら間違いなくその人についていくと思うし、また、自分も杉江さんのような人間になれたら良いなということです。

現場からは以上です。

DroidKaigi2016

CFP がクローズされてしまい、もう今更感も半端ない感じがありますが、2016 年の DroidKaigi が動き出しています。

http://droidkaigi.connpass.com/event/23512/

チケットも公開初日でアーリーバード(早期割引)が売り切れとなりました。ありがたいことであると同時に、Android のカンファレンスへの関心の高さを表しているようにも思います。

CFP はなんと 90 件を越える応募を頂きました。どれも目移りするほど聞いてみたい内容ばかりです。 世間では 12 月に入って Advent Calendar の季節になっていますが、DroidKaigi 2016 も盛り上げてまいります。何より今回は、海外からの関心も集めていることがとても楽しみな要素です。

一方で、2015 年は ABCD Kanazawa のような、東京以外でも盛り上がっていこうぜという流れが生まれた年でもあります。 この先、DroidKaigi という形で広まっていくのか、あるいは違う形で広がりを見せるのかは分かりませんが、ゆく年くる年、2016 年も引き続きいろんな広がりが見えることを楽しみにしています。

そういうわけで(?)、自分自身はと言うとこれからアメリカに行ってしまい、年を越すまで帰ってこないので、日本からの投稿はこれでおしまいということになります。 良いお年を!!!!

秩父までサイクリングしてきた

先日、秩父までサイクリングをしてきました。

Chichibu round-trip at EveryTrail

EveryTrail – Find trail maps for California and beyond

総行程173.49kmというグランツールみたいな距離を走りました。

行きは所沢街道を辿り、所沢入間バイパスを経てそのまま国道299号をひた走りました。ただし、途中正丸トンネルが自転車が通れないようだったので、 脇道にそれて峠道を行くことに。これが普通にしんどかった……

標高は600mほどの峠らしいですが、終始6%くらいの斜度を登り続けました。4kmほど走ると峠に到達し、頂上の茶屋でご飯を食べました。

このお茶屋さん、普通のご飯も出してくれますが、おみやげも色々売っていました。 人気メニューは正丸どんぶりという、豚肉の辛味噌焼きをご飯に載せた豪快なご飯ですが、サラダやお漬物、ゆず入りのお味噌汁もついてきます。

ここから峠道を下って横瀬を通り秩父へ。下りは殆どこがなくてもスピードが出ます。

秩父では観光もせず帰り道をどうするか考えました。 もう山は超えたくないし、すでに飯能に戻るまで37kmという標示があったので、寄居・東松山に出て山を回りこんで帰ることにしました。

が、普通に考えて距離は倍以上になるわけで……

深谷市というところに出たところで、道路の案内標識に藤岡とか熊谷とか出てきて泣きそうになり、川越まで22kmと書いてあるのを見た時にはやばさを感じました。

東松山に出たところで、森林公園に行った時のルートをたどることにしましたが、相変わらず東松山から川島町を抜けるまでは何もなく、川越に到達するまで補給ができなくて泣きそうになりました。

久しぶりに超ロングライドでしたが、やはり長旅するには相応の計画を立ててから行くべきですね。帰り道を行き当たりばったりで選んだのは相当間違いだったorz

Potatotips #21 にいってきた

最近の Potatotips はずっと倍率が高く競争が激化していて、なかなか当選しないのですが、今回晴れて発表枠が当たったので、「Popup view on Mortar」というテーマで話をしてきました。

Mortar といえば、Fragment に対抗しかつシンプルな API を提供しようという構想のもと Square, Inc. が主導してメンテナンスしているライブラリですが、 いかんせん Fragment を置き換えるという性格上なかなかドラスティックに現在のアプリを Mortar に乗り換えるというのが難しかったりしますし、 サンプルとライブラリを読む以外によいドキュメントないしチュートリアルが無いので、導入と理解のハードルも高かったりしますが、コンセプトそのものは素晴らしいですし、 実際導入してみると、Fragment に戻ろうとは思わなくなるほどにはよいライブラリだと思っています。

基本的な考え方は以下のようなものになります。

  1. Dagger と共に用いることを前提としている
  2. 1 つの Activity の中で複数の View とその状態を持ち、それらの遷移を管理する
  3. Activity が持つ View は、Presenter への参照をもち、状態やライフサイクルの管理とモデルへのアクセスを Presenter に委譲する
  4. Dagger のモジュールは Presenter ごと個別に宣言され、スコープが細かく定義される

基本的に、画面の構成単位は View になります。Activity は 1 つであるという前提があるためこうなります。 画面の構成単位たる View は、対応する Presenter を持っていて、View の状態やライフサイクルの管理、モデルへのアクセス等の、 Activity や Fragment が持っていた部分を Presenter が受け持ちます。Presenter はどの View に紐づくものかを知っているので、Presenter から View のメソッドを呼び出すことができます。

Fragment がコンポーネントのモジュール化をするという触れ込みで導入されましたが、結果再利用性の高い Fragment を作るには熟練のワザマエが必要で、 かつそれほど再利用性が必要かと問われると、タブレット対応以外に思い浮かばない。その割には、Fragment の仕組みが複雑かつデバッグの困難性が高いので、 それであれば旧来の View の仕組みを整理して同じことを実現できる Mortar の思想はとても良いものだと感じます。

ただ、現時点で使用者も少なくドキュメントも十分とはいえず、人知れず存在している機能もあります。

そのなかの一つが Popup ですが、主に AlertDialog のような Dialog をあつかうための仕組みです。 DialogFragment とくらべて圧倒的に便利な点は、Dialog の選択に関するコールバックが DialogFragment では otto や EventBus を使うことを考えますが、 Popup では Presenter でコールバックが受け取れるため、無駄にイベントオブジェクトを生成したりインタフェースを切ったりということが一切必要なくなります。

Mortar、地味ながら良いライブラリですので、MVC につかれた方は是非 MVP の勉強も兼ねて触ってみてはいかがでしょうか。

森林公園までの往復100kmサイクリング

森林公園には、サイクリング専用の全長約17kmのコースがある。ローディーたちがひしめきあいながらしのぎを削る修羅のコースではなく、 あくまで森林公園をめぐるため自転車乗り入れを許可している自転車専用道路という扱いではあるものの、 道幅も広く(普通の国道の車線一個分はある)、起伏にとんでいて、なにより一方通行なので安心して走れるということで、一度行ってみたかったので行ってみることにした。

自宅からは47kmほどいくことになるそうだ。

行きはとにかく国道254のバイパスを北上することに。ひとまずの目標は川越を通り過ぎること。しかしこれが以外に遠かった…… 三芳町からふじみ野市を越えるのが長く、かつ道路も混んでいたのも手伝って、かなり時間を要した気がする。

川越に入るとバイパスが終わって普通の道に。途中T字路に行き着いて困ったが、うまく国道254に合流することが出来た。

国道254に入って暫く行くと大きな川を2本越える橋がやってくる。これを過ぎると本格的に田舎になって、ひたすら田んぼかでかい工場、配送センターみたいなのしか無くなる。 とにかくトラックが多く、コンテナトラックに幅寄せされて涙目になりながらなんとか市街地へ。と、気がつけば東松山市というところまで来ていた。

東松山市に入るとアップダウンが定期的にやってくる。ひたすら国道254をまっすぐ行き、途中のY字路で国道407に入る。そこから20分ほどで森林公園の案内にしたがって左折。 ここではじめて、熊谷がこんなところにあるということを知った。

途中休憩で補給とかせず、ひたすら飲み物だけでしのいできたせいで、このあたりから脚が悲鳴を上げ始めてしまった……まだ往路なのに…… 後ちょっと……がすごく長かった気もするけど、なんとか森林公園へ到着。

昼飯をとり、公園内のコースをぐるぐる。本当に、起伏もカーブもよりどりみどりな感じで、こんな道が17kmほどあるというのはすごいと思った。 いつかこのコースを借りきってロードレースでもやったら面白そうなんではと思ったけど、それをするにはきっと道幅が足りない気がする。 何より、見る人たちのための場所がないw

とりあえず周回コースをひと通り回って、最後は南口から帰ることに。

ぐねぐねと山を登ったり降りたりしながら、国道254に合流。途中なんどか高架があったけど、 なぜか自転車通行禁止の標識がなくて、しかしそんなところを自転車で行くのは恐怖しかなかったので迂回しつつ、往路で別れた国道407と合流し、ひたすら南下。

川島町にはいるころには完全に脚がヒーヒー言っていて、かつこの間打ち付けたアバラもヒーヒー言い始めた。

取り敢えず頑張って川越をやりすごし、早めの夕飯というか補給ということでラーメンとチャーハンを摂取。 そこからふじみ野市の市街地に入って、薬局で痛み止めを買うことに。本気でアバラの痛みが辛抱たまらんかった……

東武線を超え、行きに使った国道254のバイパスも通り過ぎ、三芳町、所沢へ。 途中、行き先案内標識が、真っ直ぐ行くと「本郷」に行くと書いてあって、どこだか知らないけれど方角はあっているからとまっすぐ向かったら、 2~300メートル行ったところに「本郷」という交差点があって、道に迷いそうになった。いや、そんな近所の案内って無いでしょ……

結局、本郷交差点をまっすぐ行き、所沢の裏道をふらふらしていたら、清瀬に出る道が見つかった。 東京だ!と思う一方で、西に来すぎたことを悟ってちょっとがっくりきた。

ただ、そこからはよく見なれた通りばかりで、小金井街道を南下してから所沢街道を青梅街道方面へ走り、そのまま青梅街道に入って帰宅した。

朝は10時に出発して、帰宅したのは18時すぎ。帰りの途中寄り道や想定外の疲れがなければもう少し早く帰ってこれたと思う。

サイクリングコースも含めると100kmを超す道のりを走ってきた。 つぎはどんなところへ行ってみようか、と思いつつ、自転車自体をもう少し乗り心地よくしなきゃな、とも思った。

何かをするのには合理的な理由が必要だという話

チームで仕事をしていると、人によって同じことでも解釈が違って、モチベーションの度合いが変わってくることがある。
あるいは、新しいプロジェクトを始める時に、人によってモチベーションが最初から高い人もいれば、あとから上がってくる人もいる。

多かれ少なかれ、チームとして何かしらの目的に向かって仕事をしていこうというときに、何故それをするのかということを明示することは、その仕事を成功させる上でとても重要な事だと思う。 言い換えれば、みんなで同じ目的地に到達するために同じバスに乗せようとするなら、メンバーを納得させるだけの十分な合理的理由を説明する必要があるということだ。

何故それをするのか

僕らが持っているリソースは無限ではない。時間も、人も、お金も、限られた量しか持ちあわせてはいない。

そんな中でも最大限の成果をあげられるように様々な工夫が考案され、その中でも汎用的なフレームワークが色々なところで活用されている。 できれば、効果の高いものから順に取り組んでいきたいし、自分たちが目指す世界とは相容れないものは不用意に取り入れないようにしておきたい。

端的にいうと、自分たちの目指す目的に適っているかどうかを判断して優先順位をつけていきたい。そしてその判断の中には、それをするに十分な納得の行く合理的な説明があるはずだ。合理的でないことをしても目的に適うかどうか判断出来ない。

理由は振り返りにも効果を発揮する

たとえば新しいアプリを作るというような大きなプロジェクトから、アプリの一部機能を変更するというような小さめのプロジェクトまで、何故それをするのかという考え方はとても大事だと思う。

なぜ、なんのためにそれをするのかが定かで無いと、結局後になって振り返っても、どういう視点で振り返ってよいかが不明確になるからだ。もはやそんな振り返りにはなんの意味もないし、得るものも少ないだろう。

目的と理由から目標をたてる

目的があって、それをなす合理的な理由があるならば、目標が設定できるようになる。目標は KPI などとも言い換えられると思う。数字に落としこんで、自分たちがどれだけうまくやれたかをあとで振り返ることが出来る。 この KPI の設定の仕方はほんとうに難しい。何を軸に数字を見るべきかは目的によっても変わるし、それをする理由によっても見なきゃいけないものがあったりすると思う。

いずれにしても、目的やその理由がはっきりしないまま目標をたててもふわふわしたものにしかならなかったり、まったく何を軸にしたらいいか見当がつかなくなったりしてしまう。

まとめ

そもそも自分としては、何故それをするのか分からないものをしたくないという思いもありつつ、分からないまま進めても良い成果は出せないという信条もある。 だからこそ強く、合理的な理由が欲しいという思うのだけれど、それを抜きにしても、とても根源的な部分で理由をはっきりさせておくというのは大事なんだということを、この記事を書いていて思った。