この国では犬が

本と芝居とソフトウェア

ゲーム音楽作家を目指していた #私を構成する9枚

「私を構成する 9 枚」、なんかはてなブログで話題になっていて、最近めっきり音楽も聴かなくなって一度ふりかえってみるのも面白いかな……と思ったので、書いてみます。

ちょっとはフックがあった方がいいかな、ということで「ゲーム音楽作家を目指していた私」です。
目指していました。なっていないし、今はもう目指してもいませんが……。

私を構成する 9 枚

こうなりました。

f:id:enk_enk:20160207012100p:plain

iTunes 見てみたらアルバム 1000 枚くらいあったのですが(いつの間に……)、構成する、構成する、……という観点で絞ると、案外絞れるものですね。
それほど迷いませんでした。最後の 2 枚くらいかな。迷ったのは。

順に軽くコメントしてみます。

CHRONO CROSS OST / 光田康典

僕がゲーム音楽作家を目指すきっかけというか決め手になったのが、どこで聴いたかもう忘れたのですが、CHRONO CROSS のオープニングテーマ「時の傷痕」を聴いたことでした。
メロディも、アンサンブルもものすごくかっこよくて。ゲームのための音楽でこういう表現ができるんだ、と衝撃を受けて。

中三のときだったと思います。
ゲームが好きだったのでゲームを作る人になりたいな、と漠然と思っていたのですが、音楽を作ろう、とこのとき決めたのでした。*1

それから、エンディング・テーマの、みとせのりこさんが歌う Radical Dreamers も美しかった。
もちろん、作中の色々な曲にも影響を受けました。今思うと、作家になろうとすることをやめるまで、影響から脱していませんでした。

この曲とか……。

note.mu

聖剣伝説 2 OSV / 菊田裕樹

聖剣伝説2 オリジナル・サウンド・ヴァージョン

聖剣伝説2 オリジナル・サウンド・ヴァージョン

聖剣伝説のサントラを聴いたのは CHRONO CROSS よりも後だったと思います。
いや、先だったかも。たしか CHRONO CROSS のサントラが売り切れていたとかで。

とにかく、聖剣伝説 2 を僕はやっていなくて(ドラクエっ子でした)、でも僕よりも先に音楽を作っていたインターネットの知り合いの高橋伸弥さん *2菊田裕樹激押しで、ふむ聴くか、と思って。
クロノクロスとこれで、僕のこの先しばらくが決まったと思います。

民族楽器を使った音楽、あるいは世界各地の伝統音楽、それからミニマルミュージック、プログレッシブロックのエッセンス。
それを手掛かりに、本格的に音楽を聴き始めることになります。

スピッツ / スピッツ

スピッツ

スピッツ

ところがスピッツです。

なんでスピッツだったんだろう……。

何かティンと来たのでしょう。
当時はドラマとか CM とかでもバシバシ使われてたし、J-POP 全体がよく売れてたし。
ゲーム音楽作家を目指すこととの前後はよく覚えていません。TSUTAYAスピッツを借り始めたのが少し先だったような気もします。

結果として、スピッツのアルバムは全部聴いたことがある(半分くらいは持ってる)くらい好きになりました。
中でも当時から大学時代にかけて一番好きだったのがこのファーストアルバムです。なんか根暗で、肌に合ったんですよね。

In the Court of the Crimson King / King Crimson

In the Court of the Crimson King

In the Court of the Crimson King

というわけで、ワンクッションありましたがさてさてプログレッシブ・ロックを聴きはじめることになります。

King Crimson は 1 枚目より 2 枚目の方が完成度が高いという人があったりとか、そもそも長い歴史の中で色々なことをやっているので人によって結構好みが分かれますが、僕はいまだにこのファーストが一番好きです。
まあ、原体験だったということもあるとは思います。

余談ですが、当時(高校を卒業して実家を出るまで)音楽情報のじつに半分くらいはここから仕入れていました。
ゆえにか、やたら古い音楽ばかり聴く人になっていました。

美術の知識もフィギュアスケートの知識もここで得たし、とても感謝しています。

kajipon.sakura.ne.jp

実家がまあ田舎で、たとえばミュージック・マガジンみたいな音楽雑誌があることも知りませんでした。
というかたぶん置いてなかったと思う。中学の頃できた町で一番大きな書店であるところの TSUTAYA に。

Close to the Edge / Yes

Close to the Edge

Close to the Edge

経緯はだいたい King Crimson と同じです。

これもプログレッシブ・ロック入門の定番で Yes で最初に聴いたアルバムなのですが、やっぱり大好きなんですよね。
Siberian Khatru(やさしい変拍子)のおかげで変拍子フェチへの道を歩み始めてしまった気がします。

Rubai / Flook

Rubai

Rubai

これはアイリッシュ・トラッド、の現代的でカッコいいやつです。
光田康典菊田裕樹ラインの主要な要素であるところの、伝統音楽ですね。

この辺になると当然 TSUTAYA ではレンタルも販売もなくて、でもそれなら渋谷のタワーに現物があるかというとたぶんないのでそこはあんまり変わんないですね、Amazon で買ったのだったか、The Music Plant の通販で買ったのだったか。
Amazon は救世主でした。当時。今も田舎の中高生にとっては救世主……かなと思ったけどたぶん別にそんなことないですね、配信サービスも色々あるし。時代は移り変わっていきます。

Live / Lau

Live

Live

Lau はこの中で歴史がかなり新しいのですが、どうしても入れたくて入れました。
スコットランドのスーパーイカした三人組(フィドル、ギター、アコーディオン)なのですが、伝統音楽ラインで僕の中では一つの(いったんは)終着点的な存在になったスゴバンドです。

西欧のトラッドが好きで、でもまだ聴いたことがないという人がもしいたら、ぜひ聴いてみてください。
なお「私を構成する」ことを重視して少し古いアルバムを取り上げましたが、今ならライブ盤なら Live 2011、スタジオ版なら Arc Light か Race The Loser がおすすめかな、と思います。

OK Computer / Radiohead

Ok Computer

Ok Computer

この辺はちょっと迷いました。

実は聴いたのが 2006 年に大学に入ってからで(サークルの同期の多数が好きなアルバムに挙げていた)、それくらい僕は現代のロックを聴いていませんでした。
ほどなく気に入って聴きまくりました。

僕が現代のロックを聴くようになった記念碑的なアルバムということで挙げました。
実際すごくいいアルバムです。

Everything, Everything / Underworld

Everything Everything

Everything Everything

同じく少し迷いましたが、大学時代になんだかんだ一番聴いた(と思う)電子音楽のアルバムということで。

これは、最高です。
日曜の昼間とかに爆音で *3 流して飛び跳ねながら洗濯とかすると、この世の春という感じがします。

でも部屋の中で無闇に飛び跳ねると頭を打ったり天井を突き破ったりするので注意が必要です。

まとめ

「私を構成する 9 枚」なので、自ずとやわらかかった頃、つまり今よりもずっと若かった頃(に/から)聴いていたアルバムが中心になりました。
「構成された私」にクリティカルヒットをかましてきたアルバムであればもっと他にもいろいろといろいろといいのがいっぱいあるのですが、「私を構成する」というのはなかなかニクいテーマでした。

今となってはそうそう聴かないものも多いし、同じバンド/ミュージシャンでも別のアルバムのほうが今は好き、というものもあります。 そう考えると、若いころにどんな音楽を聴くかが、人をどう構成するかを決めるすごく大事なことだ、……という話になりそうですが、実はこれらのアルバムを聞いていた時期は同時に僕が一番音楽を渇望していた時期でもあった、と思います。

これがもし本だったら、まともに読み始めたのはほんの 5 年ほど前のことなので、「私を構成する 9 冊」のうちの半分以上はそれ以降のものになるはずです。(それでも、半分近くがもっと若いころに読んだものになりそう、という予測も驚きではありますが……)

そのうち「私を構成する舞台 9 本」みたいなのもやりたくなるのかな。
まとめると、生きること、生きてまわりのものを取り入れて、影響されて変わっていくことは楽しいです。

*1:フェアに書くと、このときまだきちんと決めてはいなくて、音楽じゃね、音楽なんじゃね? と思って、音楽を作り始めたのでした。決めたのは、高 1 の進路(文理)選択のときだったはず。

*2:当時は高橋さんではなくてハンドルネームでしたが

*3:と、隣の迷惑にならない程度の爆音で……

株式会社アプレッソでは丁寧なJava書いてくれるソフトウェアエンジニアを募集しています

僕が開発者として所属しているアプレッソでは、ソフトウェアエンジニアを絶賛募集中です。*1
事業は(少なくとも、僕が入った 2 年前からあとは)堅調に伸びていて、会社として、個人としてやりたいことも増える一方なのですが、採用活動がなかなか予定通りには進んでいないのが現状です。

要は、(しっかりとソフトウェアエンジニアリングができる、あるいはできるようになろうとする意志と能力がある)人がほしいです。

ぜろゆさん(@zer0_u)の一昨日のエントリ

teafortw0.hatenablog.com

を見て、弊社割と条件合いそうだし、ぜろゆさんでなくても似たような感じで転職したい人はきっといるはず、ということで、ぜろゆさんのリクエストに答えていくようなスタイルで書いてみます。

ぜろゆさんのリクエストに答えてみる

やったことがあること

Java, Clojure

アプレッソの製品は、9 割方 Java で書かれています。
主力の DataSpider Servista という製品のコードの 9 割は Java です。残りの 1 割が C# で、Studio for Web という Web 用のクライアントを作るのに使っています。

Clojure を業務で使う機会は(自力で作ることは不可能ではないですが)今のところないです。
が、(当然)関数型プログラミングの知識・経験は Java でのプログラミングにも役立つので、歓迎されます。

英語(読み)

当然といえば当然ですが、技術情報を調べる際に英語ができるととてもよいです。
また、近年はグローバル展開も視野に入れた活動をしていて、一方で現状アプレッソのエンジニアの多数が英語が得意というわけでもないので、英語ができる人が増えるのは大歓迎です。

文章校閲・校正

アプレッソの製品はエンタープライズ向けパッケージ製品ですが、使いやすさを重視しているので、ドキュメントの整備にも力を入れています。
ただ、専属のテクニカルライターがいるわけではなく、基本的にエンジニアが書いています。全体を見る人がいて、品質を一定水準以上に保つ努力をしています。

といった事情から、文章に強いエンジニアが増えることはやはり大歓迎です。

応用情報技術者資格を持っています

これについては特に言うことはないです。
まあ、基礎が整っているのは(当然)歓迎すべきことです。

やりたいこと

職種:技術職(というよりは営業職以外)

アプレッソでは職種別採用を行っていて、ソフトウェアエンジニアを熱烈募集中です。
ちなみに、テストエンジニアやサポートエンジニアも同時に募集しています。

本人の意思を無視して突然営業にコンバートみたいなことはまずないです。
と同時に、希望すればテストやサポート、セールスエンジニアに転向することも割と柔軟に可能だと思います。(制度があるわけではなく、都度相談ですが)

分野:教育とか、バックオフィスとか、そういう「表に出づらいけど大事なところ」

ぜろゆさんの志向と完全には一致しないのかもしれませんが、エンタープライズ向けパッケージ製品というのはまさに「表に出づらいけど大事なところ」だと思います。
実際、表に出づらいことで、Web 系の華々しいところに比べると、採用活動で苦戦しがちになる部分でもあると思います……。

主力製品の DataSpider Servista は、具体的には「データ連携」の製品です。
社内・社外を問わずシステムを構築する際に、システムとシステムを連携するために使われます。もちろんプログラマがいれば各システムの API に対してプログラミングをすることでシステムができるのですが、そこを楽にしたい、ゼロからの開発ではなく安定したパッケージでまかなってほしい、ということを基本的な目標としている製品です。

勤務:できたら10~20時で抑えたい

定時は 9:30-18:00 です。
10 人くらいいる開発部に 1 人だけですが、ほぼ 100%、18:00 ちょうどに退勤している人もいます。(数年前からそうすることに決めて、そうしているみたいです)

僕は割とやりたいことがいっぱいあるので残業とかもしますが、自分で選んでやっているので全然苦ではないです。用事がある日には定時で帰ります。
先月の残業時間は 30 時間ちょっとでした。

やや余談ですが、男性で育休を取得しつつ、週 1 で自宅でリモート勤務というかなり変則的な働き方をしている人もいます。
あとは、オーストラリアからフルリモートの人もいます。

パッケージソフトウェア開発では、一つのソフトを長く育てていくので、メンバーにもできるだけ長く在籍してもらいたいという傾向があります。
そのため、色々なスタイルで働けるようにしたい、ということでこのように柔軟になっているのだと思います。

収入

他の人の収入を知らないのでなんともいえませんが、たぶん高くも低くもないです。
僕は一度だけ転職して今アプレッソにいるのですが、個人的には、実力・市場価値相応の給与をもらっているという感覚で、納得感があります。

場所:今は東京にいるので東京を希望

文京区の江戸川橋という駅です。(有楽町線飯田橋のお隣)
駅から徒歩 1 分で、また東西線の神楽坂からも徒歩 10 分くらいなので、そちらから通っている人もいます。

すぐ横が首都高なのがちょっとしょんぼりですが、室内にいれば別に気にならないし、見えるのが首都高とはいえ窓が広いのも嬉しいし、反対側にはかわいい商店街もあって、慣れてくるとなかなか悪くないです。

以下は会社の周りの様子です。

f:id:enk_enk:20151209122022j:plain
▲僕の席の近くから見た首都高

f:id:enk_enk:20151209150109j:plain
▲会社の裏側は案外緑っぽい

f:id:enk_enk:20151209145607j:plain
▲春の江戸川公園(※流れている川は神田川

そのほか

環境:新しいものに抵抗がないことや、学ぶことが当たり前の環境にいたい

あくまでフェアに言うと、どんどん新しいサービスを作る Web 系スタートアップみたいなところに比べると、少し保守的だと思います。

というのも、エンタープライズの世界では、一度パッケージを入れたら(バージョンアップしながらも)何年も使い続けられる場合も多いので、後方互換性や将来的なメンテナンス性にすごく気を使います。
開発言語に Java を採用しているのも、もともと開発者・CTO で今は社長の小野さんが得意だったというのもあるでしょうが、同時に Java プラットフォームの後方互換性、安定性というところが大きいです。

とはいえ、当然 Java は随時最新のものにアップデートしていますし(もうすぐリリースされる DataSpider Servista 4.0 は Java8u66)、きちんと説明できれば OSS のライブラリも入れられます。(たとえば、今 Eclipse Collections を入れてみようとしています)

最近では新製品の動きも出てきていて、まだ決まっていませんが、Go を使ってみようだとか、僕を含む一部のエンジニアがどこかで Scala を使えないかもぞもぞしていたりとか、新しいことを学ぶ土壌はあります。

時期について

早くても4月頃とのことですが、問題ないと思います。

もっと遅くなるとしても、弊社に合う人が来てくれることが一番です。
幸か不幸か(?)採用予定に対して現状は結構不足しているので、遅くなるから不採用、みたいな心配はいらないと思います。 (こればかりは決定権を持っていないのでなんとも言えないところはありますが、声かけていただければしかるべき人に一言伝えることはできます)

というわけで

ぜろゆさん、ぜひ一度アプレッソに遊びに来てみませんか。
当然いきなり面接とか採用とかではなくて、まずはアプレッソも含む色々な会社を見てみるといいと思います。(すごく時間がなくてそんなことできない、とかあれば、僕からの紹介があればいきなり面接も可能だとは思います。たぶん。僕は当時京都に住んでいたこともあり、Wantedly から申し込んで、いきなり面接でした)

それから、ぜろゆさん以外にどなたでも(もちろん、「しっかりとソフトウェアエンジニアリングができる、あるいはできるようになろうとする意志と能力がある」人という前提ですが)、声をかけていただければお会いするなり、しかるべき人にご紹介します。
Twitter@enk_enk)でメンション(ないし、フォローしてメンションいただければフォローし返すので、DM)いただければオッケーです。

各種情報

最後になりましたが、採用情報等各種リソースへのリンクを貼っておきます。

■僕はこれから応募して入りました

www.wantedly.com

■別バージョン

www.wantedly.com

■去年書いた募集エントリ

enk.hatenablog.com

■会社 Web

www.appresso.com

■ミッションステートメント(単なるお題目ではなく、割とまじめにこれでやってます)

www.appresso.com

あえて僕に連絡しなくても、もちろん Wantedly から直接応募していただいてもオッケーです。

*1:ソフトウェアエンジニア以外にテストエンジニアやサポートエンジニアも募集していますが、このエントリでは対象を絞ります

2016 年 1 月に読んだ本(内向型人間のすごい力、「じか」の思想 ほか)

前回の読書記録で、

量から質へ、さらっと読める本から歯ごたえのある本へ、またインプットからアウトプットへ、徐々に移行していきたいな〜と思っているので、この読書記録のつけ方も今後ちょっと変えるかもしれません。

なんてことを言っていましたが、今のところおおむね今までどおり読んでいます。

読んでいるうちは、記録もつけておこう、と思います。

1 月のよかった本

内向型人間のすごい力

内向型人間のすごい力 静かな人が世界を変える (講談社+α文庫)

内向型人間のすごい力 静かな人が世界を変える (講談社+α文庫)

大人になってみて、子供のころこれを知っていれば色々と違っただろうな、もっとずっと生きやすかっただろうな、と思うことがちょくちょくあります。
この本に書かれていることも、そのうちの一つでした。

著者は、「内向型」の人が内向型である理由(原因)や、そのことを生かす方法、「外向型」の人との違いなどを、科学的な知見から論じます。
一つ一つの説明が個人的な経験・記憶によく一致していて、深い納得感がありました。それはただ自分のことだけでなく、きっと内向型だったであろうあの人や、ちょっと苦手だった外向型のあの人のこともです。

この本のいいところは、「内向型はこんなに優れている!」といった内向型賛美みたいなものでは決してなく、むしろ外向型の人も含めた「人間をより深く理解する」ための本として読めるところです。

ちょっと変な言い方ですが、この本を読んだあと、もし同じスタンスで書かれた『外向型人間のすごい力』という本があればぜひ読んでみたくなるような、そういう射程距離を持った本でした。
僕は大きく分けると内向型なので、外向型の(特徴を多く持った)人のことをもっとよく知りたいのです。そのために、この本自体も役立つし、(外向型の人のことを)もっと知りたい、と思わせる不思議な魅力を持った本でした。

かといって、「外向型」の人がこれを読んで感銘を受けるかどうかはさすがにちょっと自信がないのですが、できれば読んでほしいし、自分が「内向型」だと思っている人(そのことを意識的に悩んだことがある人……ほぼすべての内向型の人は、あると思いますが)には、ぜひ読んでほしい本です。

「じか」の思想

「じか」の思想 (第4巻) (セレクション 竹内敏晴の「からだと思想」(全4巻))

「じか」の思想 (第4巻) (セレクション 竹内敏晴の「からだと思想」(全4巻))

去年の一時期にどハマりした竹内俊晴さんのセレクションシリーズ完結編。

実は、この第 4 巻には竹内さん自身が筆を執った『愛の侵略』という戯曲が収められていて、なんとなく「観ていない戯曲」を読む気があまりしない時期だった去年の僕は『愛の侵略』の冒頭でずっと止めたままにしていたのでした。
「愛」の「侵略」という何となくざらっとした違和感のあるタイトルも、読み進めることを思いとどまらせた一因だったかもしれません。

ところが、ふと思い立って読み進めてみると、これが。
マザー・テレサの生涯を追う作品なのですが、このマザー・テレサがしていることがまさに「侵略」そのもので、戦慄的なのです。

具体的なエピソードを引いてもうまく伝わりそうにないので、あえて引きたくないのですが、アルバニアを出て、インドに入って、野垂れ死んでいく人たちに執拗にかまって、介抱して、看取ろうとするマザー・テレサははっきりと侵略者なのです。「愛」の。

それがどういうことなのか、僕が生きることや社会やら世界やらにとってどういう意味を持つのかは、正直言って全然消化できていません。
ただ、とにかく、竹内さんの選集の最後あたりにそんなものが出てくるとは思っていなかったので、びっくりしてしまいました。と同時に、人間と「からだ」と格闘し続けてきた竹内さんがここにぶつかることに、不思議な納得感のようなものもあります。

『愛の侵略』は、単行本も出ています。
が、『「じか」の思想』に収められたものは未公刊の新版とのことだったので、多少内容が異なるのだと思います。

愛の侵略―マザー・テレサとシスターたち

愛の侵略―マザー・テレサとシスターたち

読書メーター

2016年1月の読書メーター
読んだ本の数:18冊
読んだページ数:4271ページ
ナイス数:17ナイス

ひらく美術: 地域と人間のつながりを取り戻す (ちくま新書)ひらく美術: 地域と人間のつながりを取り戻す (ちくま新書)感想
美術を使って、地域と人間、人間と人間とのつながりを取り戻していくことの記録です。著者は最後に「一般解を示したかったがそうはいかなかった」ということを書いていますが、さすがの具体性、個別性と、同時に十分な広がり、長い射程距離を持ちあわせた本だと思います。
読了日:1月2日 著者:北川フラム
日本人はどう住まうべきか? (新潮文庫)日本人はどう住まうべきか? (新潮文庫)感想
この本で言われている「だましだまし」ということの価値(あるいは原理主義のデメリット)を忘れている日本人はきっと多いと思うし、こういった本を通して多くの人がそれに気づいてくれたら、と思います。(その方がたぶん生きやすくなるから)
読了日:1月3日 著者:養老孟司,隈研吾
おとなになるってどんなこと? (ちくまプリマ―新書)おとなになるってどんなこと? (ちくまプリマ―新書)
読了日:1月3日 著者:吉本ばなな
独立国家のつくりかた (講談社現代新書)独立国家のつくりかた (講談社現代新書)感想
実力行使に次ぐ実力行使で現代現実世界をビシバシ拡張していくさまに、しびれます。
読了日:1月3日 著者:坂口恭平
だから演劇は面白い! (小学館101新書 50)だから演劇は面白い! (小学館101新書 50)
読了日:1月3日 著者:北村明子
楽しもう。瞑想:心に青空が広がる (光文社知恵の森文庫)楽しもう。瞑想:心に青空が広がる (光文社知恵の森文庫)感想
瞑想とは何かということから具体的なやり方、その効果(するとどうなるか)、またなぜ機能するのかという説明やTIPS的なところまで幅広く、かつしっかりとカバーしているよい入門書だと思います。
読了日:1月3日 著者:宝彩有菜
掏摸(スリ) (河出文庫)掏摸(スリ) (河出文庫)
読了日:1月4日 著者:中村文則
始めよう。瞑想:15分でできるココロとアタマのストレッチ (光文社知恵の森文庫)始めよう。瞑想:15分でできるココロとアタマのストレッチ (光文社知恵の森文庫)感想
姉妹編の『楽しもう。瞑想』とは多少かぶる部分もあるますがおおむね相補的な内容で、興味深く読みました。やはり入門書です。姉妹編の後に読みましたが実践のこと(手順やコツ)が色々と詳しく書かれていて、参考になりました。
読了日:1月5日 著者:宝彩有菜
実践 JUnit ―達人プログラマーのユニットテスト技法実践 JUnit ―達人プログラマーのユニットテスト技法感想
JUnitの使い方(テクニック)というよりは、テストへの考え方から具体的な留意点、設計の工夫やTDDまで、(JUnitの使い方も解説しながら)ユニットテストの入門〜中級までを幅広く、程よいボリュームで扱った良書です。
読了日:1月7日 著者:JeffLangr,AndyHunt,DaveThomas
角川インターネット講座 (10) 第三の産業革命経済と労働の変化角川インターネット講座 (10) 第三の産業革命経済と労働の変化感想
視点が高くて、面白かった。後半が特に面白いので、構成でちょっと損している気もします。(後半を読んだあとに序盤を読んだ方が面白いような……)
読了日:1月9日 著者:
命売ります (ちくま文庫)命売ります (ちくま文庫)
読了日:1月11日 著者:三島由紀夫
こんな舞台を観てきた: 扇田昭彦の日本現代演劇五十年こんな舞台を観てきた: 扇田昭彦の日本現代演劇五十年感想
日本の演劇を50年以上見つめ続けてきた扇田昭彦さんの連綿たる劇評112本。その場にいなかった/いられなかった人間にとってほんとうにありがたい仕事です。
読了日:1月17日 著者:扇田昭彦
「じか」の思想 (第4巻) (セレクション 竹内敏晴の「からだと思想」(全4巻))「じか」の思想 (第4巻) (セレクション 竹内敏晴の「からだと思想」(全4巻))感想
竹内さんのセレクションシリーズ完結編。これに収められているマザーテレサを描いた戯曲「愛の侵略」はまさに「侵略」そのもので、戦慄しました。
読了日:1月17日 著者:竹内敏晴
内向型人間のすごい力 静かな人が世界を変える (講談社+α文庫)内向型人間のすごい力 静かな人が世界を変える (講談社+α文庫)感想
この本を読んで、「強い言葉を使う人の言うことを必ずしもその通り聞かなくてもいいんだ」ということを本当に深く納得したように思います。他にも、「内向型」の人にとって示唆にあふれた、自分や、自分だけでなく(「外向型」の人も含む)他人をより深く知ることのできる本です。その点、この本のタイトルは必要以上に言葉が強い感じがして、そこだけちょっとマイナス。(タイトルのせいでありがちな自己啓発書の類かな……と思って手に取るのをためらいました)
読了日:1月21日 著者:スーザン・ケイン
からだ・こころ・生命 (講談社学術文庫)からだ・こころ・生命 (講談社学術文庫)
読了日:1月23日 著者:木村敏
時間と自己 (中公新書 (674))時間と自己 (中公新書 (674))
読了日:1月28日 著者:木村敏
詩の樹の下で詩の樹の下で感想
樹の、本です。
読了日:1月29日 著者:長田弘
23区格差 (中公新書ラクレ 542)23区格差 (中公新書ラクレ 542)
読了日:1月31日 著者:池田利道

読書メーター

鑑賞記録 2016 年 1 月(書く女、夫婦 ほか)

新年は芝居が 4。

観た芝居

十一人の少年

色々な劇があるのだ、ということが最近(まともに見始めてから 1 年経ってようやく……)わかってきました。

イスラ! イスラ! イスラ!

  • 岡崎藝術座
  • 1/15(金)20:00~@早稲田小劇場どらま館

これも色々な劇のうちのひとつ。

遠くて、むずかしかった。

役者が全員ずっと仮面をつけていたので、自然とからだの微細な動きに注意が向くのが面白かった。
でも、それ自体に大きな意味はなかったような気もします。

こうやって遠いものがふとした拍子に近くに来ることがあるのは知っているけど、でもやっぱり遠かったなあ。

書く女

最近あまり「美しい」という言葉を使いすぎないようにしようと心がけているのだけれど、書く女の黒木華はじつに美しかったので。

夫婦

ハイバイは今までに観たどの演劇とも少しずつ似ているようで似ていなくて、にもかかわらず観劇体験が高水準で(それこそ「遠い」みたいなことも全然なくて)、不思議な魅力でした。
今度の『おとこたち』もぜひ観に行きたい。

以上、絞って絞って 4 本でした。

スカラ祭 2016 2 日目 : Scala コミュニティはあります #ScalaMatsuri

ScalaMatsuri の 2 日目は、一日を通して行われるアンカンファレンスの題目を決める朝会から始まります。

アンカンファレンスというのは事前に登壇者や内容を決めず、参加者がテーマを持ち寄って、有志が発表したり、パネルディスカッションをしたり、議論をしたりといったことを、その場で決めてから行うカンファレンス、いやアンカンファレンス、のやり方です。
ScalaMatsuri では数年前からこのやり方を取り入れているようです。

詳しくはこの記事の「2日目にアンカンファレンス」のところを読んでいただければよくわかるかなと思います。

blog.scalamatsuri.org

なお 1 日めのレポートはこちら。

enk.hatenablog.com

朝会

というわけで、朝の 10 時から 1 時間、ワイワイと朝会を行い、一日のセッションを決めました。

f:id:enk_enk:20160131101157j:plain
モデレータの岡本さん(右)と、もう一人運営の方(申し訳ありません、お名前がわかりません……)岩永さん(左)(ご本人からメンションいただきました、ありがとうございました!)

テーマは前日のうちにあらかじめホワイトボードに各自で貼り付けておいて、シールで投票する形式だったので、その得票数の多いものから順に取っていくのですが……。

  • 貼った人が(朝だから)いない
  • そのテーマで話してくれるはずの人が(朝だから)いない
  • (朝会に)日⇔英翻訳が必要で、うっかりマイクを通さずに話すと翻訳してもらえないので、何かと混乱が生じる
  • 主に日本人が話すセッションで英語で聞きたい人がいる場合に通訳が必要になるので部屋の制約が生じる

などなどでやたらとワイワイして最後バタバタしました。笑

実際、かなり(このように)複雑度の高い朝会だったので、バタバタしたのも仕方ないというか、むしろその複雑な仕事をとてもうまく回していたと思います。壇上のお二人以外のフォローも的確で、運営の実力を感じました。

こうやって決まった 2 日目のセッションは、50 分 × 6 コマ。
順に感想を述べていきます。

セッション

Domain-Specific Languages with Scala / Model-based testing with Modbat

一発目は、産総研(AIST)の Cyrille Artho さんによる 2 本立てのセッション。

朝会では NASA が何とか(?)言っていたのでドキドキしていたのですが、結果としては NASAドメインにかかわる話は特になかったように思います。笑

内容は、前半が ScalaDSL を作るということについて、外部 DSL と内部 DSL を対比させながら詳しく見ていくものでした。
全体として、Scala は(Ruby などにも似て)言語そのものの表現力が高いので、内部 DSL にする方がとにかく実装が楽だし、コンパイル時チェックも効くし、十分便利に使えてよいのかな……という印象を持ちました。
Scala 自体が DSL をつくるのに向いている言語だと思うので、Scala を本格的に使うことになったらそういう方面も視野に入れることができて、楽しそうだなと思います。

後半は Modbat というツールを使ったモデルベースのテストの話だったのですが、駆け足で例も少なかったこともあり、いまいち飲み込めずじまいでした……。

Spark 入門

続いては、お名前を聞きそびれてしまったのですが日本人の方と、午後に Spark で日本語テキストマイニングをするというセッションを持たれていた Eduardo Gonzalez さんによる Spark の入門セッション。

前半が Spark の概要の説明で、短い時間で Spark がどういうもので、何ができるのかざっくり掴めてありがたかったです。

後半は Azure 上に用意された環境でのハンズオンでしたが、ネットワークがちょっと不安定なこともあってか参加はできず。
見ていました。

Spark shell(ほぼ Scala の REPL みたいなもの)上で実行していたのですが、途中 Ctrl + C で終了してしまう場面があって、作った人が UNIX をよくわかっていないから……みたいなことを言ってウケていました。笑

Spark の考え方自体はわかりやすくて使いやすそうだなと感じるのですが、やはり分散処理基盤のことを考えるときにいつも感じる、「本当にやりたいこと」ができるのか(ノード内で外部リソースと I/O できるのかとか、I/O をさせないとしたら今度は大きなデータをノード間で引き回すことになってネットワーク的に非効率になるのではとか)という疑問は解けなくて、個人的にもやっとします。
実際にある程度使ってみればわかるようになるのでしょうか。できない、ような、そもそも考え方が違う、ような気はするのですが。

リアクティブシステム入門

お昼をはさんで、午後の一発目。
SBT わからないので「SBT 人間」と迷ったのですが、SBT 人間には同僚が出てくれるということでこちらに来ました。

TIS の前出祐吾さんによるセッションです。

大きく分けて「リアクティブシステムとは」ということを説明する前半と、それを実装した例である「Reactive Solar Farm monitor」(多数のソーラーパネルから情報を収集してモニタリングするシステム)を実動させてみる後半という構成で、とてもわかりやすくまとまっていたと思います。

昨日の岡本さんのセッションとかぶる部分もあればかぶらない部分もありで、あわせて聞いたことでだいぶ理解が深まりました。

個人的に「届けたい価値は高レスポンス、支える原理が伸縮性と耐障害性、手段がメッセージ駆動」という説明がとてもわかりやすかったです。
この説明で初めて(ようやく)Reactive Manifesto のあのよく引用される図の意味が腑に落ちました。

腑に落ちて、なるほどもっともだ、と思ったので署名しておきました。笑
理念自体は、(当たり前といえば当たり前ですが)結局これに全部書いてあるのですね。

やや余談ですが、WEB 上のリソースでは伊藤直也さんの Qiita の記事が、僕がこの 2 日間で得た理解とだいたい同じで、納得感がありました。

qiita.com

後半のデモはというと、マシンスペックの問題でやや動作が重たくはあったものの、Akka で動作させている各ノードが協調しながら動作する様子は見事でした。
たとえば、Master Analyzer(単数)と Worker Analyzer(複数)があって、Worker は増減できるし(立ち上がったら自動的にシステムに参加する)、Master が落ちたら生きている Worker が Master に自動で昇格する、というのもうまくいっていました。
かっこいい。

IntelliJ IDEA で Scala をマスターする

続いて JetBrains の Alexander Podkhalyuzin さん(@Safela)によるセッション。

IntelliJ IDEA の便利な使い方をひたすら披露し続ける実に充実した 50 分間でした。

いや実際、こんな機能もあるんだ、こんなこともできるんだ、と発見の連続でした。僕がそもそもほとんど使ってないというのもあるとは思いますが。
Alexander さん自身「IntelliJ IDEA はすごく便利なのに機能を知らない人が多すぎるから discoverability を上げることに力を入れている」みたいなことを言っていて。大事です。そういう活動。
余談ですが僕(たち)が会社で開発している DataSpider Servista *1 も一種の開発ツールみたいな側面があるので、ユーザミートアップのようなところで Tips を教えるコーナーみたいなのがあっても面白いのかな、と思ったりします。

なかでも以下の 2 つがヒットでした。(ショートカットキーは Windows の場合)

  • Find action(Shift + Ctrl + A)で、名前からアクションを探せる
    • 極論を言うと、ショートカットはこれと「Search everywhere(Shift 2 回)」だけ覚えておけば何とでもなる! すごい!
  • Intention action(Alt + Enter)でとにかく賢くコードの変換候補を出してくれる
    • for 式をガシガシ分解して Scala でどう解釈・実行されるかを見られるのは衝撃的

自分用のメモも兼ねるので、取ったメモは以下にそのまま残しておきます。

IDEA Part

  • focusing performance, general usability, and more discoverability!
  • Run : Shit + Ctrl + F10
  • Find action : Shift + Ctrl + A
  • Use distraction free mode!
  • Search everywhere : Double Shift
    • File : Shift + Ctrl + N
    • Context : Shift + Ctrl + Alt + N
  • Recent Files : Ctrl + E
    • Recently Changed Files : Ctrl + Shift + E
  • Switcher : Ctrl + Tab
  • Class Structure : Ctrl + F12
  • Hide All Windows : Ctrl + Shift + F12
  • Presentation mode as super

Scala Part

  • Use Alt + Enter to improve your scala code
  • Inspection for multiple files is also available
  • Worksheet function : light worksheet interactive mode works like REPL!
  • Intention action : Alt + Enter
    • for 式をガシガシ分解できる!
  • Delete Line : Ctrl + Y
  • Smart Completion : Shift + Ctrl + Space
    • When using Option, it's useful
  • Copy Reference : Ctrl + Shift + Left
  • Toggle Breakpoints : Ctrl + F8

Hidden Gems

  • Variables の右クリックメニューからの Mark Object でオブジェクトを追跡する
  • _DebugLabel で Marked Object を取得する(Watches に追加もできる)

DDD + CQRS + EventSourcing 実装する会 / Akka パフォーマンスチューニングについて話してみよう会

ここで僕にとっては今日初めてのパネルディスカッションです。
ChatWork の加藤さんをモデレータに、Scala で DDD を実践されている人たちとして、ゲヒルンのまつしたさん、昨日もセッションを持たれていた MOTEX の藤井さん、Socket のおくださんが登壇されました。

はじめに加藤さんから DDD の概要をさらっと紹介したあとは、ひたすらディスカッションでした。

全体的な印象として、実際にやっている人が集まるとさすがに議論が深いな、ということと、Scala も DDD もやっていないとなかなかついていけないな、ということを感じました。笑
とはいえ、やっている人たちがこれだけいるということには、それだけで勇気づけられる気がします。

それ以外に得たものとしては、(昨日の藤井さんのセッションでも聞きましたが)CQRS(Command Query Responsibility Segregation)や Event Sourcing というキーワードや、それらの使い方と使ったときのイメージ(どう実装して、どういうところが課題になって……)といったところでしょうか。

CQRS には提唱者の Greg Young さんが書いた割と大物のドキュメントがあって、それを参照しながら議論するようなものなのだ、ということがわかったのも収穫の一つでした。

Scala の教育について

ScalaMatsuri 2016 最後のセッションは、昨日や朝会でも登壇された岡本さんをモデレータとして、前のセッションから続いての加藤さん、Wix の Tomer さん、ドワンゴの吉田さん、はてなのだいくしーさんによるパネルディスカッション。

実は今日一番気になっていた Scala の教育についてのセッションです。
というのも、何を隠そう(隠してない)僕自身が Scala 入門者で、Scala軽くて(薄くて)、網羅的で、正しくて、楽しくて、手も動かせるような入門用リソースがなかなか見当たらないことに困っていたからです。

色々求めすぎだろという感もありますが、たとえば同じく(?)モダンコンパイル型言語である Go には Go コードの書き方A Tour of Go といった具合に日本語の入門リソースが充実していますし、『改訂 2 版 基礎からわかる Go 言語』もとてもいい本でした。

それに比べると Scala では公式のチュートリアルはありますが英語ですし、入門編として有名な Scala School も英語ですし、日本語の書籍はちょっと古いものが多く、使えるには使えるのでしょうが、いまいち心がときめきません。
仕方なく今は公式チュートリアルを英語でやっていますが、英語が苦手な人に勧めるのはちょっとためらわれます。(昨日の瀬良さんの話にもあったように英語がんばろうよというのはあるにせよ、そのせいで Scala に入門しづらい、というのはなんかもったいない)

Effective Scala が日本語で読めるのはとてもありがたいですね。ただ、その手前がありません。

コンセンサスのない Scala 教育

前置きが長くなりましたが、そんなわけでとても関心の強いトピックだったのです。

昨日公開されたドワンゴの Scala 研修テキストの話を皮切りに、議論はさまざまな方向へ展開しましたが、結論めいたものは出なかったように思います。

そうなのです……。

岡本さんが最後に(時間切れでまとめる時間がなかったこともあり)「コンセンサスがないのが現状ということのようです」といったことをおっしゃっていましたが、それを象徴するように、加藤さんが「Better Java →関数型への傾倒→純粋関数型」というステージが……みたいな話をしていたら Tomer さんから「ステージを上がっていくという考え方には同意できない、Scala では色々な選択ができるのであって、関数型で書くかは選択の問題」といった反論がありました。
反論といっても別に必ずしも対立しているわけではなくて、要は加藤さんのチームが「純粋関数型を選択した」ということ(そういう前提で話していた)なのだと思いますが、Scala には何かにつけこういうところがある、という印象はあります。

スケーラブルな言語で、色々な書き方ができるので、その分学習者が混乱してしまう面もあるように感じます。
帰り道で同僚が「コップ本一通り読んでも(そこに書かれていない機能が使われているから)OSS のコードが読めるようにはならない」と言っていたのも印象的でした。

そんな状況の中、公開されたドワンゴのテキストは、これは、すごくありがたい存在なのでは……? と個人的には思っています。
もちろん「ドワンゴの社員のための」テキストではあるのでしょうが、

  • 2015-2016 年時点でつくられた新しいテキストであること
  • 日本語であること
  • (一見したところ)言語機能の解説にとどまらず、エコシステムや、それこそ前述した「選択」の理由、のようなところまで丁寧に書かれているようだったこと

といった理由から、うまく使えば Scala の入門一般に役立つのでは、と期待しています。 とりあえず、Scala 入門者である僕自身がさっそく使ってみたいと思います。よければ他の人にも勧めます。

https://dwango.github.io/scala_text/dwango.github.io

まとめ : Scala コミュニティはあります

こうして楽しい 2 日間が幕を閉じました。

いや、楽しかったです。
率直に言って Scala エンジニアではないし、Scala プログラマでもないし、そらで Hello World 書けるかっていうと書けないのですが、それでも。
何が楽しかったかといえば、Scala という言語自体の魅力はもちろんあるのですが、同じくらい Scala コミュニティの魅力というものもあったのでは、と思います。

(ソフトウェアエンジニアとして)大人が多いというか、Scala がまだ普及しきっていない言語だから、Java とかに比べるとエッジに比較的近いからということもあるかもしれませんが、成熟している感じがするのです。(年齢とかではなく。年齢では Java の方がよっぽど……)
2 日目をまる一日使ったアンカンファレンスがふつうに成立してしまうことからも、それがうかがえます。

僕はこの 2016 年において Java の魅力の半分……とまでは言いませんが 3 割くらいはコミュニティの魅力だと思うのですが、Scala にもコミュニティあるんじゃん、がっしりしたやつが、という印象をこの 2 日間で受けました。

その面でも、Scala これからが楽しみな言語だな、と思います。
当初の思惑通り(?)、Scala の学習ペースを早めて、何らかのソフトの開発で実用できるようになっていけたら、と思っています。

*1:残念ながら Scala ではなく Java で開発しています