この国では犬が

本と芝居とソフトウェア

スカラ祭 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 で開発しています

スカラ祭 2016 1 日目 : Scala を掘り下げたくなりました #ScalaMatsuri

この土日で開催されている ScalaMatsuri 2016 に参加しています。

日常業務ではほぼ 100% Java を使っていて、Java はそのエコシステムまで含めた総合力ではとてもナイスな言語だと思うのですが、どうしても他のよりモダンな言語に比べるともう一つ……というところもあって*1、じんわりと Scala の可能性を探る日々です。

そんなじんわりじんわりした中、一発大きなカンファレンスに参加したら色々とコトが前進するのでは、と一念発起して 1 万円の参加費をはたいて、スカラ祭に参加しています。
まだ 1 日目ですが、参加してとてもよかったと感じています。

以下、参加したセッションの感想を述べます。

セッション

本当は朝の 10:00 からがくぞさん(@gakuzzzz)のセッションがあったのですが、寝坊しました……。
土曜日に早起きはできない。

せめてもの罪滅ぼし(?)に、セッション資料だけでも紹介させてもらいます。

なぜリアクティブは重要か

というわけで、一発目は岡本 雄太さん(@okapies)のセッション。

Java 界隈でも著名な岡本さんのセッションを初めて見たのですが、噂に違わぬハイテンポなセッションでした。
わずか 40 分でリアクティブひとめぐり!

www.slideshare.net

とてもよく整理された内容と語り口で、聞いているときはなるほどなるほどと思っていたのですが、終わってしばらくたってみるとよく覚えていません。笑

記憶が追いついていないだけだと思うので、……スライドで改めて復習します。
スライドもやはりよく整理されていて、あとで見返すこともしやすいのがありがたいと感じます。

楽しく役立つ Scala リファクタリング

Wix 社の Tomer Gabel さん(@tomerg)のセッション。

表題の通り、Scala で書かれたあんまりいけてないコードを Scala の機能を活用しながらいけてるコードにリファクタリングする、という内容で、ライブコーディングも交えながらほどよいテンポで(笑)進みました。

www.slideshare.net

実際僕は Scala を始めたばっかりで、公式のチュートリアルをようやく七割がた終えたところという体たらくなのですが、そのレベルでも Scala らしいコードの書き方、Scala のよさを感じられるありがたいセッションだったと思います。

具体的には、ざっくり以下の二本立てでした。

  • "Stringly Typed"(「書式」を取り決めた文字列を引き回してあれこれするようなコード)を改善する
    • 文字列を渡して内部でパースするコンストラクタを、ファクトリ関数に置き換える
    • そのオブジェクトの使用箇所も、いい感じにパターンマッチを用いるように書き換える
  • Collection Abuse(コレクションの乱用)を改善する
    • インラインで処理をつなぎすぎているところへ、一時変数を導入したり、ローカルな関数を定義して名前をつける
    • タプルをやめ、ケースクラスを定義して要素に名前をつける

こうして見ると、普段から Scala を使っている人にとってはだいぶ基本的だったのかもと思いますが、僕のような初心者にとってはまさに求めていた内容でした!
英語がゆっくりでとても聞き取りやすかったのも助かりました。*2

バッチを Akka Streams で再実装したら100倍速くなった話

TIS の根来 和輝さん(@negokaz)のセッション。

MySQL からその日の取引情報を取り出して時刻順に並べて CSV ファイルに書き出す、という夜間バッチを、Rails による実装から Akka Streams に置き換えたことで 100 倍……どころか 295 倍速くなった、という話でした。295 倍。笑

www.slideshare.net

テスト用の環境とデータを用意して、ボトルネック(メモリ)を特定して、解消して、新しいボトルネック(CPU)を特定して……というパフォーマンス改善の正道をいくプロセスで Akka Streams に行き着いた、といったストーリーで、納得感のある内容でした。

ただ、15 分しかない枠だったこともあり、個人的には Akka Streams ならではの話というか、苦労したところとか、こういう問題があってこう解決したとか、なぜ他の言語やツールキットではなく Akka Streams を採用したのか、みたいな話を期待していたけれどそういうのがなかったのが、ちょっと惜しかったかな……という感もありました……というところまで書いて、そういえば最後に Tips のスライドがあったけれど時間がなくなって飛ばされていたことを思い出しました。
15 分では仕方ない、とは思いますし、この 15 分の枠というもの自体は、お昼すぎの眠たくなりがちな時間帯に軽いテンポをもたらしていてよかったと思うので、なかなか難しいところです。

アジアから Scala OSS に貢献するということ

退職にともなう連日の飲み会で声が……と言いながら始まった、瀬良 和弘さん(@seratch)のセッション。
退職自体はセッションの内容とは(たぶん)関係ありませんが、「エムスリーの瀬良さん」というイメージだったのでちょっとびっくりです。今後のご活躍も楽しみです。

さて、内容はというと、一言でいうと、日本人はもっと世界に出た方がいい、というメッセージを伝えるものだったと思います。英語で。*3

www.slideshare.net

瀬良さん自身は海外に住んだことがない、「ふつうの」日本人プログラマだけれど、Skinny FrameworkScalikeJDBC といった OSS を自ら開発・公開されたり、様々な OSS に貢献されたりしていて、みんなにもできるはずだ、やっていこう、という話でした。
もし自分のプロダクトを公開したら README も英語で書こう、ブログも英語で発信していこう、といったこともおっしゃっていました。

個人的に、「たしかに」と思ったのは、日本では日本語で読める技術書が豊富に出ていて、日本語のコミュニティも活発だけれど、それは(日本人一般が)英語が苦手であることの裏返しだ、ということです。英語が苦手だから、日本語の書籍が充実するし、充実しているから、英語が読めなくてもやっていける。
でも、また同時に、やはり英語ができた方が得られる情報も発信できる情報も増えるのは確かだと思います。この業界、とにかく第一線の一次情報が英語という場合が割合として非常に大きいので、英語を使ってコミュニケーションしていくということは、それが大きなコストのかかることであっても、やる価値があるし、これから先どんどんやらないといけなくなっていくだろうな、と感じています。

Scala コードは JVM でどのように表現されているのか

午後から始まった 15 分セッションの 3 本目にして最後は、関ジャバの会長である阪田 浩一さん(@jyukutyo)のバイトコードセッション。

www.slideshare.net

恥ずかしながら、このセッションに参加するまで Scala コンパイラが最終成果物として何を出しているのかのイメージをきちんと持っていませんでした。

ああ、言われてみれば当たり前なのですが。.class ファイルとして、JVMバイトコードを出しているのですね。
CAFE BABE から始まる、Java プログラマにはおなじみのやつです。

15 分セッションだけあってさすがに駆け足で進むのですが、バイトコードの基礎知識に始まって、trait、パターンマッチ、カリー化といった Scala ならではの記法がバイトコードでどう表現されるのかの解説までを、無駄なく、漏れなく駆け抜ける、見事なセッションでした。

バイトコードはこうやって読むんだよ」とか「javap 使おう!」とか、それだけなら 15 分でもやれると思うのですが、それらの内容もきっちりおさえつつ、Scala コードとの対応関係までわかるように解説するというのは……。

やはり、(なぜか)「イメージをきちんと持っていなかった」僕が「わかった!」という感動を得られたのは、実際の Scala コードとそのコンパイル結果のバイトコード(の javap -v の結果)をバシッと見せてもらったからだと思います。
おみそれしました。

あなたのScalaを爆速にする7つの方法

井上 ゆりさん(@iyunoriue)(と、インケンさん)のセッション。

爆速、爆速……と思いながら参加しましたが、がっつりベンチマーク取っての骨太な、でありながらかつクイズ形式で和やかに進むというお得なセッションでした。

www.slideshare.net

SSD 上の 2GB の Memory Mapped File の方が(同サイズのデータを扱う)memcached 1.4.0 より速い(memcached 1.4.0 では 1 キーあたりのデータサイズが 1MB 以下という制約がある!)とか、フィボナッチ数列の生成で Stream による実装の方が Array による実装の方が圧倒的に速い(Stream の方は値を 1 つしか取り出していなかったから! ずるい!)とか、なかなか意表を突くクイズも取り入れながら、単なる豆知識にとどまらない、Scala の奥深さを感じられる内容だったと思います。

個人的には、コレクションの性能周りの問題に、(Scala のコレクションのことはほとんど知らなかったのですが)C++ 時代の知識とコレクション名からの推測でだいたい正解できたのがなんかちょっと嬉しかったです。笑
でもまじめな話、データ構造なんてのは言語によってそうそう大きく変わるものではないので、こうやって知識が応用できる場合があるのもさもありなんで、プログラマというのは経験をきちんと積めば報われる職業だな、ということもちょっとだけ思ったりします。

あと、Scala はコレクションの性能特性が公式ページに一覧化されている、というのもステキですね。

一目瞭然です!

The Zen of Akka

JavaOne 2015 では Java 9 に入る予定の Reactive Streams の話をされていた、Typesafe 社の Konrad Malawski さん(@ktosopl)のセッション。

同時間帯の関数型ドメインモデリングのセッションもちょっと気になっていたのですが、概要に「ドメインの代数がモノイド、函手、モナドといった圏論的な構造から構築できるか試してみる」みたいな文字列を見つけて(あっ……)と思ってこちらに逃げてきました。

このセッションは、「Akka という考え方」とでもいうべき、Akka とうまく付き合うためにどう考え、どうすればいいかが詰まった内容でした。

www.slideshare.net

そもそも Akka を使ったことも使おうと思ったこともないので*4、Akka そのものとのマッピングはできていないのですが、それぞれの特徴的な考え方から Akka の輪郭が浮かび上がってくるようなセッションでした……いや、まじめな話。笑

実際に使っている人にとっては、なおさら面白い内容だったのではと思います。
いつか使う(使おうとする)日が来たら、きっと思い出すことになるでしょう。

Scalaドメイン駆動設計に真正面から取り組んだ話

本日最後は、MOTEX の藤井 善隆さん(@yoshiyoshifujii)のセッション。

www.slideshare.net

藤井さんは Scala を始めてからまだ 7 か月、チームも似たような感じということで、にもかかわらずドメイン駆動設計というチャレンジも重ねて、苦労しながらの、進行中の知見を共有する、ということで、かえって僕のように知識も経験もない人にも共感できるところの大きい内容だったと思います。

特に面白いと感じたのは、「どうしてもレイヤ感で責務が漏れてしまう」といった課題に対して「チームでどうするか決める」「コードレビューやモデリング(のレビュー)で対処する」「定常的にリファクタリングし続ける」といったプロセス的な解決策が色々上がってきたところです。現場感がありました。

一方で、CQRS(Command Query Responsibility Segregation)の考え方を適用して、クエリ(データの取得)については限定的に Query Model としてレイヤ間を飛ばして扱えるようにする、という技術的な解決策も出ていたり、Query Model に対して Command Model はあくまでレイヤー化アーキテクチャを守る、という判断があったり、結局こちらも現場感なのかもしれませんが……ドメイン駆動設計で開発することになったらきっと同じことで悩むのだろうな、と感じられる、学ぶところの大きい内容だったと思います。

その他雑感と一日目のまとめ

そんなわけでスカラ祭初日はとても充実した一日でした!
セッション終了後の懇親会も楽しみました。

参加費 1 万円を支払った甲斐は十分あったと感じます。
冒頭や本文中にも述べたように Scala は全然始めたばかりなのですが、初心者でもそれなりに理解できて、かつ奥行きもある質の良いセッションが多かったのではないかと思いますし、会場も全体としては広く、時間的なゆとりもあり、水や、お菓子やコーヒーといったちょっとしたサービスもとてもありがたかったです。

何といっても Scala を使っている・使おうとしている人たちが 500 人ばかりも一堂に会する場所に集まって(そんな場所が日本にあるのです!)、その空気を吸うことがとてもいい刺激になっています。
この辺は JavaOne に参加したときの感想にも近いところがありますね。

それから、Scala やっぱりいい言語だな、と思います。
まだ半分お試しのつもりでしたが、Scala をちょっとまじめに掘り下げてみたくなりました。

二日目は主にアンカンファレンス形式ということで、いったいどうなるのか若干不安もありますが笑、それ以上に楽しみです!

追記 : 2 日目も行ってきました

enk.hatenablog.com

*1:Java に限らず、Scala も含むすべての言語には得意不得意があるわけですが

*2:僕は利用しませんでしたが、今回の ScalaMatsuri では、多くのセッションで同時通訳もついていました

*3:ScalaMatsuri のセッションはそもそもだいたい日英半々で、日本人で英語の発表をされている方もいたのですが、瀬良さんの場合は特にそのメッセージと重ねていたところが大きかったのだろう、と思います

*4:Scala 界で有名なライブラリ群、くらいの認識

2016 年の目標

2016 年の目標を立てます。

2016 年の目標

2016 年になってから、実家でごろごろしたり、ごろごろしたり、ごろごろごろごろごろごろしたり、さすがにごろごろするのに飽きてちょっと散歩したり、フェリーと電車と新幹線を乗り継いで 10 時間かけて東京に戻ってきながら本を 1 日に 5 冊読んだりするなかで*1、ぼんやりぼんやりと今年の目標について考えてきました。

ぼんやりぼんやりした中から浮かび上がってきた、次の 2 つのことを今年の目標にしようと思います。

  • 全力で走る
  • 手入れして生きる

全力で走る

比喩です。

全力で走るというのは、ものごとをやって、やって、やり抜くという意味です。

ものごとというのは、今のところ、主にしばいとソフトウェア、です。(うたはお休み中)

もちろん、生きていると、しばいとソフトウェア以外のことも色々とあります。
それらについても、手を抜かない。

ここ 3 年ほど、色々と助けてくれた人たち、力になってくれた人たちや、まあ自分でも自分なりに行った努力などのおかげで、心身が安定して、全力で走っても大丈夫になったと感じます。
しばいとソフトウェアのことを、充実してきた心身にまかせて、ビシバシやりたいと思っています。やりたいことがひとつの 2 倍でふたつあるから、余計にリソースを突っ込まなくては、という思いもあります。

それから、この一年でだいぶものごとがよく見えるようになってきて、もちろん昔に比べたらということですが、あまり細かく目標を決めたり、管理したりしなくても、うまく走れるんじゃないか、これもたとえですが、うまく行きたいところへ、もし目標を決めるとしたらそうと決めていたようなところ、そのちょっと先くらいのところへ、自然と行けるんじゃないか、という予感があります。*2

一度これでやってみようと思います。

走って、走って、あわよくばたまに飛ぶことができれば。

手入れして生きる

これはあながち比喩というわけでもないです。

全力で走れるようになった(と思う)とはいえ、そんなことをすると、走る速さにおそらく比例して、色々なクズやらほころびやらが出ます。これは比喩です。
たとえば部屋は荒れるでしょうし、頭の中も荒れるでしょうし、下手をすると人間関係も荒れるかもしれません。

だから、こまめに手入れをして生きようと思います。

具体的には部屋の掃除だってするし、ものの手入れもするし、古くなったものは入れ替えるし。心身の状態にもこまめに気を配る。
積みすぎている本やら CD も何とかする、まとめてじゃなくて、少しずつ。人づきあいも、ここしばらくちょっとルーズにしすぎた感もあるので、もう少しだけ気を使ってみる。

こまめに手を入れることは、走ることに対しては、少なくとも走ることが持ちうるエネルギーの総量に対しては多少のブレーキになる可能性もありますが、この先も続けていくために必要なことだと考えます。
本当は少し荒らしてみたい気もしているのですが。まあ、本当に本当に全力で走れば、自ずと荒れるでしょう。荒れすぎると、壊れます。それはまずい。

手入れ、という言葉は養老孟司さんの何かの本からもらいました。
里山はほったらかしの自然ではなくて、人間が手入れすることでできあがる、みたいな話だったと思います。

この一年で、全力で走ることと、手入れして生きることのバランスを高いところでうまく取れるようになって、この一年の先も生きていけたらいいなと思っています。

今年も生きます

というわけで、2016 年の目標は、

  • 全力で走る
  • 手入れして生きる

の 2 つです。

すごくシンプルなのでちょっと不安もありますが、まあこの先もしばらく続く(蓋然性がそれなりに高い)人生のうちの 1 年間、これでやってみるのも悪くないでしょう。

続くといいなあ。

本編が短くすんだので久々に言っておくと*3、生きることは大前提、当たり前ということではなくて、まず第一に行うべきことです。

2016 年も生きます。

補遺

補遺 1 : 忘れていたもう一つの目標(のかけら)

先にあげた二大目標に並べるまでではないのですが、少し社会に目を向けたい、ということも思っています。
社会に目を向けるというのはまた漠然とした言い回しですが、年末にふりかえりをするときのフックになればいいと思って、書き残しておきます。

自分のことはすっかり充足してきたので社会を見た方がいいな、という感じがここしばらくしているのですが、まだ入口も出口も見つかっていないのが現状です。
まあ、社会とか大きなことを言う前に、もう一度身のまわりの人たち、近しい人たちに目を向けることから……なのかな。

補遺 2 : 最後に一つだけいらないことを

今年の目標、特に「手入れして生きる」の方は我ながら実に常識的でまっとうな目標だなと思っていて、それがなんだかつまらないな、ということを少し思います。
「本当は少し荒らしてみたい」と言ったのも、たぶんそういうことです。

それなりに足掻いてようやく獲得した(つもりの)常識、まっとうさを「つまらない」というのはまったく……という感じもしますけど。
一年後にどう感じているか、どう考えや行動が変わっているか見てみて、また考えたり、あるいは考えなかったりしたらいいかなとも思います。

*1:記憶にある限りでは自己新記録でした

*2:一方で、これを書きながら、逆に言うといま一年後の具体的な目標が定まっていないんだな……ということに気づきましたが、まあ……大丈夫でしょう、たぶん

*3:3 年くらい前は「生きます」みたいなことばっかり言っていた気がします

2015 年 11 月~ 12 月に読んだ本(Soft Skills、究極の鍛錬、融けるデザイン ほか)

11 月から英語の本を読み始めたらガクンとペースが落ちてしまいました……。
ので、2 ヶ月まとめてお届けします。

終わってみれば、クリティカルヒットがバシバシ出て、すばらしい読書生活でした。

11 月~ 12 月のよかった本

Soft Skills

Soft Skills: The Software Developer's Life Manual

Soft Skills: The Software Developer's Life Manual

これはたいへんな本でした。
詳細は以下の記事にて。

enk.hatenablog.com

究極の鍛錬

究極の鍛錬

究極の鍛錬

かつてゲーム音楽を作る人になりたいと思って、自分なりに才能みたいなものと格闘してきました。

当時考えていたのは、「とにかくプロになりたい」ということで、なぜなら、プロになれば、生きることのリソースの大部分をそれに注ぐことができて、長期間にわたって能力を開発し続けることができて、やがてよりよいものを生み出せるようになると考えたから。
でも、努力が足りなくて、プロにはなれませんでした。

この本を読むと、その考えや当時していたことの一部が当たっていて、一部が間違っていたということがわかります。

才能は過大評価されている

この本の原題は「Talent is overrated」で、「才能は過大評価されている」という意味です。

「才能」という言葉を聞いて人が思い浮かべるものは案外様々だと思いますが、この本で「Talent」とされているものは、割と限定的で、「(遺伝的な理由などで)生まれつきその身体に備えている能力」のことです。
そして、今の世の中ではそれが過大評価されている。

明らかに生まれ持った才能が溢れ出しているみたいに見える人でも、実は「生まれつきその身体に備えている能力」よりはむしろ、その生まれ育った環境、そしてその環境が可能にした「究極の鍛錬」がその能力をかたちづくっている、ということを著者は明らかにします。

究極の鍛錬の 5 要素

著者は「究極の鍛錬」が備える 5 つの要素を説明します。それは、以下の 5 つです。

  • 実績向上のために特別に考案されていること
  • 何度も繰り返すことができること
  • 結果へのフィードバックが継続的にあること
  • 精神的にはとてもつらいこと
  • あまりおもしろくないこと

これだけだとなんのことかわからないかもしれません。

でも、この本の論理を丁寧に追うと、能力を得るために

  • 長時間の努力が必要であること(若くして成功する人は幼少期から鍛錬を始めている)
  • ただ時間をかければよいわけでもなく、よく工夫されたものである必要があること(年をとれば誰でも能力が身につくわけじゃない)
  • その努力ははっきり言って苦痛であること(だから誰にでもできるわけじゃない)

そして、

  • 世の中で素晴らしい能力を発揮している人は誰でもこの「究極の鍛錬」を経ていること

がよくわかります。

この本の主張に照らすと、僕が当時思っていたことで当たっていたのは「(かけた時間が成果につながるから)とにかくプロになるべし」ということ、間違っていたのは「自分にはそれほどの才能がなさそうだ」と思って(あるいは、矛盾するようですが、「才能があればいずれにせよ芽が出るはずだ」と思って)、どこかプロになるための努力を中途半端にしてしまったこと、です。

才能について悩んだことのある人、また今悩んでいる人はぜひ一度読んでみるべき本だと思います。

融けるデザイン

融けるデザイン ―ハード×ソフト×ネット時代の新たな設計論

融けるデザイン ―ハード×ソフト×ネット時代の新たな設計論

融けるというのはどういうことだろう、「透明なインタフェース」や、直前に読んだ『さよなら、インタフェース』で主張されていた「NoUI」のようなことだろうか、と考えながら読み始めました。

結果として、そのどちらにも似ているようで少し違った、しかし僕の考え方、ものの見方の深いところを触って、変えてくれるようなスゴい本でした。

情報の身体化

本の中では、著者自身が行った実験の成果を踏まえながら、色々な考え方を紹介していくのですが、中でも「情報の身体化」という考え方には衝撃を受けました。

短い言葉で説明することは難しいのですが、あえて言うなら、「よい UI は、インタフェースそのものをデータ側に移動させるようなものである」ということだと思います。

たぶん全然うまく説明できていないと思いますが……。
身体と対象物(情報)の二元論で捉えるのではなくて、両方をひとまとめでとらえる(情報の身体化)という考え方ができるということに震えました。
それもただ机上で考えただけのことではなくて、実践をともなっているので、理解もしやすく、また想像力もかきたてられます。

人間の生活をよくするものを生み出すために

小難しい概念をこねくり回す本かといえば、決してそんなことはなかったと思います。

繰り返すようですが、具体的な実験やプロダクトを例にあげながら、基本的には身近なところで議論が展開されます。

僕がソフトウェア業をしているのは、(お金を稼ぐためということを除けば)人間の生活をよりよくすることに大きく貢献できる(可能性がある)と信じているからなのですが、同じような理由でソフトウェア業をしている人は(あるいは、ハードウェア業をしている人も、産業によらず何かをつくる人は誰でも……)、ぜひとも読んでほしい本です。

この本には、世界から人間の生活を悪くするプロダクトやサービスを減らして、よくするプロダクトやサービスを増やす力があると思います。

読書メーター

11 月

2015年11月の読書メーター
読んだ本の数:4冊
読んだページ数:758ページ
ナイス数:12ナイス

考えるヒト (ちくま文庫)考えるヒト (ちくま文庫)
読了日:11月4日 著者:養老孟司
やわらかな言葉と体のレッスンやわらかな言葉と体のレッスン
読了日:11月7日 著者:尹雄大
新エバンジェリスト養成講座新エバンジェリスト養成講座
読了日:11月9日 著者:西脇資哲
True and False: Heresy and Common Sense for the Actor (Vintage)True and False: Heresy and Common Sense for the Actor (Vintage)
読了日:11月12日 著者:DavidMamet

読書メーター

12 月

2015年12月の読書メーター
読んだ本の数:24冊
読んだページ数:6348ページ
ナイス数:16ナイス

方法序説 (岩波文庫)方法序説 (岩波文庫)感想
およそ400年前に真実を探し求め、また伝えようとした人の記録、というか苦闘そのものでした。
読了日:12月5日 著者:デカルト
ミステリヤ・ブッフ (マヤコフスキー叢書)ミステリヤ・ブッフ (マヤコフスキー叢書)
読了日:12月6日 著者:マヤコフスキー
反応しない練習  あらゆる悩みが消えていくブッダの超・合理的な「考え方」反応しない練習 あらゆる悩みが消えていくブッダの超・合理的な「考え方」感想
この本に書いてあることは本当です。(体験談)
読了日:12月7日 著者:草薙龍瞬
読書の腕前 (光文社知恵の森文庫)読書の腕前 (光文社知恵の森文庫)
読了日:12月10日 著者:岡崎武志
エンジニアとして世界の最前線で働く選択肢 ~渡米・面接・転職・キャリアアップ・レイオフ対策までの実践ガイドエンジニアとして世界の最前線で働く選択肢 ~渡米・面接・転職・キャリアアップ・レイオフ対策までの実践ガイド
読了日:12月10日 著者:竜盛博
Soft Skills: The Software Developer's Life ManualSoft Skills: The Software Developer's Life Manual感想
プログラマ向けの自己啓発書です。情熱プログラマーあたりにも通じるものがありますが、より実践寄りというか、ページ数が多いだけあって、読者を説得するところから具体的な実行手順を示すところまで親切にきっちりカバーされている印象でした。また、お金の扱い方のことや健康のことにもそれぞれ章が割かれているなど、技術と直接関係のない領域まで幅広くカバーしているのも特徴的で、まさにlife manualという感じです。
読了日:12月12日 著者:JohnZ.Sonmez
ハイデガー哲学入門──『存在と時間』を読む (講談社現代新書)ハイデガー哲学入門──『存在と時間』を読む (講談社現代新書)感想
とりあえず原著がめちゃくちゃ難解だということがわかった。日本語で読んで理解するのは多分不可能で、解説書を駆使しまくるか、ドイツ語をマスターするか、その両方か、一生読まないかも……。でも、その難しい本でやろうとしたことや、いちいち難しい用語の意図するところは(それなりに)掴めた気がします。根気強く丁寧な入門書だったと思います。
読了日:12月13日 著者:仲正昌樹
僕たちはガンダムのジムである (日経ビジネス人文庫)僕たちはガンダムのジムである (日経ビジネス人文庫)
読了日:12月15日 著者:常見陽平
SNOOPY COMIC SELECTION 70's (角川文庫)SNOOPY COMIC SELECTION 70's (角川文庫)
読了日:12月15日 著者:チャールズ・M・シュルツ
モチベーション3.0 持続する「やる気!」をいかに引き出すか (講談社+α文庫)モチベーション3.0 持続する「やる気!」をいかに引き出すか (講談社+α文庫)感想
アメとムチが前世紀の遺物であり、私たちがふつう期待するようには機能しないことを痛快なまでに喝破する本です。マジかーという感じです。では、どうすれば? ということまでしっかり書いてあるので、すごく便利です。
読了日:12月17日 著者:ダニエル・ピンク
書を捨てよ、町へ出よう (角川文庫)書を捨てよ、町へ出よう (角川文庫)
読了日:12月18日 著者:寺山修司
sisterssisters
読了日:12月19日 著者:長塚圭史
究極の鍛錬究極の鍛錬感想
かれこれ15年くらい、才能や人間の能力についてあれこれ考えては、そう信じたり、あるいは謎に思ったりしていたことごと、それらの点と点のすべてを美しくつないでくれた、僕にとって記念碑的な本でした。そういうことだったんだ、と深く腑に落ちました。わからないことについては「まだわからない」とはっきり記しているところも、誠実で、好感が持てます。
読了日:12月21日 著者:ジョフ・コルヴァン
リモートチームでうまくいく マネジメントの〝常識〟を変える新しいワークスタイルリモートチームでうまくいく マネジメントの〝常識〟を変える新しいワークスタイル感想
「在宅勤務」「リモートワーク」ではなく「リモートチーム」という考え方、そしてその実践のあり方を紹介する面白い本です。
読了日:12月21日 著者:倉貫義人
チームのことだけ、考えた。―――サイボウズはどのようにして「100人100通り」の働き方ができる会社になったかチームのことだけ、考えた。―――サイボウズはどのようにして「100人100通り」の働き方ができる会社になったか
読了日:12月23日 著者:青野慶久
ケラリーノ・サンドロヴィッチ 消失/神様とその他の変種 (ハヤカワ演劇文庫)ケラリーノ・サンドロヴィッチ 消失/神様とその他の変種 (ハヤカワ演劇文庫)
読了日:12月25日 著者:ケラリーノ・サンドロヴィッチ
ウェブ×ソーシャル×アメリカ <全球時代>の構想力 (講談社現代新書)ウェブ×ソーシャル×アメリカ <全球時代>の構想力 (講談社現代新書)
読了日:12月25日 著者:池田純一
さよなら、インタフェース -脱「画面」の思考法さよなら、インタフェース -脱「画面」の思考法感想
その通り、重要なのはインターフェースじゃない。とわかっているつもりでも、やっぱりふだん、知らず知らずのうちにインターフェースを軸に考えてしまっていることに気づかされました。デザイナも開発者も、みんな一度は読んでみてほしい本です。
読了日:12月26日 著者:ゴールデン・クリシュナ
融けるデザイン ―ハード×ソフト×ネット時代の新たな設計論融けるデザイン ―ハード×ソフト×ネット時代の新たな設計論感想
情報の身体化! 今まで自分なりにUIだとかUXだとかのことを考え続けてきたつもりでしたが、強烈なパラダイムシフトを引き起こしてくれるすごい本でした。すべてのデザイナ、エンジニアに読んでほしい。そうすればきっと、世界を悪くするプロダクトが減って、よいものが増えると思います。
読了日:12月27日 著者:渡邊恵太
改訂2版 基礎からわかる Go言語改訂2版 基礎からわかる Go言語感想
Goのことをサクッと学べる良書です。特にC/C++をやったことのある人なら「そういうことね」という感じであっという間に読めて、普通にGoが書けるようになると思います。
読了日:12月27日 著者:古川昇
世につまらない本はない (朝日文庫)世につまらない本はない (朝日文庫)
読了日:12月28日 著者:養老孟司
君は永遠にそいつらより若い (ちくま文庫)君は永遠にそいつらより若い (ちくま文庫)
読了日:12月28日 著者:津村記久子
作家の収支 (幻冬舎新書)作家の収支 (幻冬舎新書)
読了日:12月28日 著者:森博嗣
なぜヤギは、車好きなのか? 公立鳥取環境大学のヤギの動物行動学 (朝日文庫)なぜヤギは、車好きなのか? 公立鳥取環境大学のヤギの動物行動学 (朝日文庫)
読了日:12月29日 著者:小林朋道

読書メーター

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

2015 年のふりかえり

2015 年のふりかえりをします。

目標

年初に立てた 2015 年の目標は、以下の 3 つでした。

  • 美しいものにたくさん触れる
  • ものごとを見通す力をつける
  • 「データ連携」と「手触りのよいソフトウェア」に投資する

enk.hatenablog.com

詳細は、それぞれの項目のふりかえりで簡単に示します。

ふりかえり

目標ごとにふりかえっていきます。

目標 1 : 美しいものにたくさん触れる

美しいもの、自分が美しいと思うもの、美しいと思えそうなものにたくさん触れるようにする。
もちろん、ただ日常生活を送っているだけでも、世界は美しいもので溢れかえっている。でも、今年はそれに甘んじず、言ってみれば筋トレのようなつもりで、たくさんの美しいものに触れてみたいと思う。
より具体的には、音楽、美術、詩、小説、映画、舞台芸術、等々のいわゆる芸術作品(エンターテインメント作品も含む)に積極的に、たくさん触れるようにする。

触れましたとも……。

どれくらい

音楽

  • CD と iTMS あわせてアルバム 10 枚くらい買った *1
  • ライブやコンサートに 6 ステージくらい行った

美術

  • 展覧会に 4 件くらい行った

詩(短歌を含む)

  • 詩・短歌を 8 冊くらい読んだ
  • 評論・作歌論等を 4 冊くらい読んだ

小説

  • 14 冊くらい読んだ

映画

  • 10 本くらい観た(うち DVD で観たものが 7)

舞台芸術

  • 演劇を 63 ステージくらい観た(うち映像で観たものが 4)
  • ダンスを 3 ステージくらい観た

63 て。
うける。

その他

  • 戯曲を 18 冊くらい読んだ
  • その他演劇関連の本(評論、手引書等)を 27 冊くらい読んだ
  • エッセイとかも色々読みました
  • 漫画もちょいちょい

目標 1 のまとめ : 美しいものにたくさん触れた(達成度 : 90%)

たくさん触れました。

特に演劇周りがちょっと大変なことになりました。出会ってしまいました。
年初の時点ではまったくこんなつもりじゃなかったんだけど。

目標の達成度は 90% としたいと思います。
総量ではよくやったよという感じですが、こうして見るとジャンルの偏りがちょっと極端だったな、というのが反省点です。

おおむね目論見通り、入れまくったものがだいぶ自分のなかで熟してきて、ふつふつしてきているので、少しずつアウトプットに転換していきたい、と考えています。*2
インプットのペースは多少は絞りつつ、極端には落とさないように気をつけつつ、という按配で。

目標 2 : ものごとを見通す力をつける

自身が他者を理解するため、また他者に理解されるための手段として、ものごとを見通す力をつける。
あるいはもしかしたら、他者が他者を理解するための手段を知るための手段として。
基本戦術としては、これは実のところ昨年もやっていたことなのだけれど、本を読むことになると思う。
本を読むことによって、
・知識が増える(自分以外の人間のものの見方、考え方、持っている背景がわかる)
・考える力が増す(自分以外の人間の発言を深く、正しく理解できる)
といったことを企図する。

読みました、たくさん、たくさん。

どれくらい読んだか

今年読んだ本が、全部で 192 冊。

うち、前項の「美しいもの」カテゴリに属する(ことにした)本が 90 冊くらい。
そして、のちに触れる「技術書・仕事本」に属する本が 33 冊くらい。

ほか、いくらかは一種の実用書みたいなのもありますが、大半はこの目標 2 に資する本だったかなと思います。
とすると、ざっと 70 冊くらいでしょうか。

詩や小説、エッセイだって自分以外の人間のことを(あるいは自分のことも)わかるための糧にはなりますし、正確な数はわかりませんが、よく読んだ、と言ってよいと思います。

どんな本を読んだか

やはり「ひとを理解する」とういことを目指していることもあってか、コミュニケーション論や身体論の本が多かったです。

といっても、これは演劇にかかわる人たちが得意とするところでもあるので、一挙両得というか、シンクロニシティというか、シナジーというか……、とにかく、我ながらぐんぐん吸収しました。
鴻上さんの本とか、平田さんの本とか、あとは竹内敏晴さんという、かつて舞台の演出をされていた方の本にも強い衝撃を受けて、その後彼の著作のセレクションシリーズを買い集めたりもしました。

ジャンルとして何にあたるのかはわかりませんが、『愛するということ』も再読しましたし、なんとなく手に取った『自殺しないための99の方法』というのがすごくいい本だったりもしました

それから養老孟司さんの本、これもある意味身体論みたいなところがありますが、『唯脳論』がクリティカルヒットで、そのあといくつか読みました。
これも嬉しい出会いでした。

閑話 : コミュニケーション論が流行っているのかも

余談ですが、次の 2 つの本がたしかジュンク堂池袋店の何かのランキングで 2 トップになっていて、なんか、流行ってるんだなというか、そういう不安や課題を感じている人が増えているのかな、ということも思います。

あなたは、なぜ、つながれないのか

あなたは、なぜ、つながれないのか

やわらかな言葉と体のレッスン

やわらかな言葉と体のレッスン

どちらもなかなかいい本でした。
こういう話題に明るくない人には、いい手引きになるのでは、と思います。

哲学の本とか

あとは、ちょっとだけ哲学の本とか。
デカルトとかハイデガーとか。基礎(というか、「参照されるもの」)にあたるところから少しずつ埋めていけたらいいかな……と思っていて、カント、デカルトハイデガーは少しだけ(いやほんとうにほんの少しずつだけ……)わかるようになりました。

哲学の本といっても新書とか文庫とかの入門書を読んでいるだけなのですが*3、そこに書かれていることのレベルでは理解できていると思います。
これは我ながらなかなかのことで、数年前なら、一応日本語を読むことはできても、たぶん理解すること(「そういうことか」と思うこと)はできなかったでしょう。

読むことで、読む力がついて、読めるようになった、と考えています。
このあたりのことは、ここ 3 年ほどの読書の一つの到達点と言えると思っています。

目標 2 のまとめ : ものごとを見通す力が多少はついた……と思いたい(達成度 : 80%)

というわけで、目標の達成度は 80% ということにします。

数もまずまずですし、(これは今年だけのことではないのですが)前項でも書いたように、一つの壁を越えたかな、という感じがします。
昔いた大学で、同級生や先輩たちの言うことを聞いて、どうしてこの人たちはこんなにものごとをよく見通せるのだろう、と魔法を見るかのように感じていましたが、今ようやく当時の彼らに追いつけたり、追いつけなかったりしているかな、という感触があります。彼らが言っていたことが、今なら少しはわかる気がします。

追いつけたり、追いつけなかったりということで、ほどよく 80% ということにしておきます。
もちろん 80% 見通せるというわけでもなくて、今年の目標の範疇で、ということですが。

本の数で何もかもわかるわけではないですが、世の中には何千冊何万冊と読んでいる人もいるわけで、僕の読書量が(およそ 5 年前に記録を始めてから)だいたい 600 冊なので、まだまだ先に色々色々あるのだろうな、とも思います。

目標 3 : 「データ連携」と「手触りのよいソフトウェア」に投資する

...具体的なアクションとしては、(なんだかこればかりだけれど)やはり本を読んでそれを実践する、ということが中心になると思う。
ただし、特に以下のような観点を持って本を選び、また読む。
・基礎体力(アルゴリズム、設計やテストなどのソフトウェアエンジニアリング全般、計画やマネジメント)
・データ連携(文字コード技術やネットワーク、セキュリティ等)
・手触りのよいソフトウェア(UI/UX のための時間を作り、その時間を投入することで手触りのよいソフトウェアが実現できる)
こういった、どちらかといえば広く浅い学習の過程で、より深くコミットしたい領域を見つけることができれば、と思っている。

この目標の達成度については、議論を呼ぶところです。

読んだ本のリスト(33 冊)

本ということでいうと、技術書は以下の 15 冊でした。

また、チームのことや、プレゼンテーションの本、その他ビジネス書等、技術書ではないが仕事に直接かかわる本として、以下の 18 冊を読みました。

  • 究極の会議
  • ピープルウェア 第3版
  • 熊とワルツを - リスクを愉しむプロジェクト管理
  • TEDトーク 世界最高のプレゼン術
  • 仕事は楽しいかね?
  • 小さなチーム、大きな仕事〔完全版〕: 37シグナルズ成功の法則
  • 会議が絶対うまくいく法
  • ガー・レイノルズ シンプルプレゼン
  • 情熱プログラマー ソフトウェア開発者の幸せな生き方(再読)
  • プレゼンテーション・パターン: 創造を誘発する表現のヒント(再読)
  • マイクロソフトを辞めて、オフィスのない会社で働いてみた
  • ザ・プラットフォーム―IT企業はなぜ世界を変えるのか?
  • エバンジェリスト養成講座
  • エンジニアとして世界の最前線で働く選択肢 - 渡米・面接・転職・キャリアアップ・レイオフ対策までの実践ガイド
  • Soft Skills: The Software Developer's Life Manual
  • リモートチームでうまくいく マネジメントの〝常識〟を変える新しいワークスタイル
  • チームのことだけ、考えた。 - サイボウズはどのようにして「100人100通り」の働き方ができる会社になったか
  • ウェブ×ソーシャル×アメリカ <全球時代>の構想力

投資はしたけれど、それが「データ連携」と「手触りのよいソフトウェア」だったかは少し疑問

そこそこ読んでいますし、ただ読んだだけではなくて、会社で業務とは別のちょっとしたプロジェクトを立ち上げたり、Eclipse Collections やら Go やら触ってみたり、(会社のおかげですが)JavaOne2015 に参加したりと、「ソフトウェア業にまつわる活動」という意味ではかなり活性化できたと思います。
駆け込みではありますが年末に UX / UI 周りのイカした本を二冊(『さよなら、インタフェース』と『融けるデザイン』)読んで、強い影響を受けたりもしました。

ただ、「基礎を固める」という当初の目標にはそこまでコミットできなかったな、というのが正直なところです。
目標が変わったとも言えるかもしれません。

目標 3 のまとめ : ソフトウェア業がんばってはいる、基礎も少しずつ(達成度 : 50%)

目標そのものからはずれたものの、そこそこがんばれたと思う、とはいえ目標そのものは達成できていない、ということで、目標の達成度は暫定的に 50% とします。

基礎がだいじであることはもちろん変わらないので、これからも少しずつでもおさえていきます。*4

と同時に、具体的にやりたいことがいくつか出てきているので、基礎だけにこだわらず、興味のおもむくにまかせて精力的にソフトウェア業やっていけたらそれもいいかな、とも思っています。

フリースタイルでふりかえる 2015 年

ここまで、年初に立てた目標とその達成度を確認しながらふりかえりをしました。

最後に、目標に関わる関わらざるによらず、2015 年そのものをふりかえってみます。

2015 年のいろいろツイート集

やり方はいくつかあると思いますが、思ったこと・やったことで大事なことは結構ツイッターで何か言っているので*5、発言を拾ってみます。

自分で選んでいたい。

このときはまだ芝居どハマりしてなかった。

ほぼ日手帳初めて使い切りました。
前回は一年の中ごろで挫折しました、たしか……。あの頃は予定がなかったんだな。

そろそろ控えた方がいいかなと感じています。

今はもうこういうガツガツした感じじゃなくなってきました。
といっても、他者をわかるようになった、ということは(もちろんというべきか)なくて、どうわかることの可能性があって、どうわからないか、ということがわかってきた感じです。

少しずつ見えてきた気はします。
UI(あるいは NoUI)は、やっぱり重要です。

養老孟司さんの「現実」の定義(「数学は数学者にとっては現実」)とか、『融けるデザイン』で語られていた「自己帰属感」とか、少しずつ違った言葉も見つけつつあって、良好です。

その通りなのですが、当時はそんなことすらいちいち発見していました。

そんな日が来るなんて想像したこともなかった。

あなたがたが悪い。

もう遅い。

のちに、世界のすべてがわかることは当分ないな、ということがわかるので、当分死なずにすみそうです。

これを数ヶ月後に唯脳論が(一応のところ)片付けてくれました。
世界は脳より広い!

今は、このときよりももっと。

こんな時期もありました。
これを越えたところが今なのだな、と思うと納得感があります。

短歌には結局ちょっと引っ込んでもらいました。
また出てくることもあるかしら。

数ヶ月に一回行ってドカ買いするのが恒例化してきました。
だいたい 1 万円分買うと(ポイントカード制)併設の WEEKENDERS COFFEE All Right の 400 円分のカフェチケットがもらえて、 それがとてもおいしいのも嬉しい。

カッコいい大人になって長生きして死にたい。

結局腰入れてってほど観ませんでした。
が、まあこれからもぼちぼち観ていくかな。

このときから座右の銘を「みんな死ぬ」にしました。

今までは、わかってなかったんです。
でも世の中、わかってない人も少なくないとおもいます。

思います。
演劇のすそ野を広げていく仕事というのも、たのしそうだ。

15 年かかりました。

最近はもうねじれまくってよくわからなくなっています。

当面は全力でいきたい。

そもそも日本を出るのが初めてだったし、これは大きかった。

芝居を始めたのもそりゃあまあ、大きかった。

渋谷と和解した。

フェースブックとも和解した。

野田秀樹とも和解した。

もうしばらくはこれでいく見通しです。

Soft Skills に出会ったのも大きかった。

刈り取りの季節が来ています。

いそがしくしていました。

まとめ

まとめると、総じてここ数年、長い目で見れば十数年、足掻いてきたことごとが実を結びつつあって、この 2015 年で何か一区切りついた感じがします。

それと同時に、芝居を始めてみたりだとか、また新しいことも始めることができていて、なかなかバランスよく生きることができているかな、と思います。

そういう年代なのかもしれません。

せっかく勝ち取ったバランスなので、大事にしつつも、せっかく基礎が安定しているのだから、バランスを崩すようなこともバシバシ……とは言わないまでも、少しずつやっていけたらいいかなと思っています。

来年のことはまた来年。

*1:年間 100 枚以上とか買ってた頃を思うと隔世の感がありますが……

*2:2015 年の時点でちょっと漏れて、芝居に出たりもしてました

*3:方法序説』だけは読みました、薄かったので

*4:今年もまったくやらなかったわけじゃない、読了はしてないけど読みかけの本もいくつかあるし……

*5:最近言わなくなってきたので来年はないかもしれませんが……