算譜王におれはなる!!!!

偏りはあると思うけど情報技術全般についてマイペースに書くよ。

Kotlin Fest 2018 大盛況のうち幕を下ろしました! #kotlinfest #jkug

f:id:ngsw_taro:20180825110207j:plain

8月25日に国内初となるKotlin技術カンファンレンス「Kotlin Fest 2018」を開催しました。 1dayイベントで11のセッションがあり、来場チケット368枚はありがたいことに完売! ご協賛いただいた企業様は18社に上ります。

午前中のオープニングセッションに始まり、夜の懇親会まで大いに盛り上がりました! 大きなトラブルも、滞りもなく、笑顔と活気しかない、とても楽しいイベントでした。

kotlin.connpass.com

当日受付

会場は東京コンファンレスセンター・品川様にお貸しいただきました。

f:id:ngsw_taro:20180825095910j:plainf:id:ngsw_taro:20180825095232j:plain
広くて清潔感のある会場

受付では、PeatixのQRコードチケットを確認して、ネームプレートとKotlin Festのロゴ入りトートバッグをお配りしました。

f:id:ngsw_taro:20180825095941j:plain

f:id:ngsw_taro:20180825100903j:plain

受付からオープニングセッションまでの時間には、ホワイエにてドリンクと朝食が振舞われました。

f:id:ngsw_taro:20180825095457j:plain

オープニングセッション

オープニングでは、私と@satorufujiwaraさんが登壇し、挨拶とKotlinトークを行いました。

f:id:ngsw_taro:20180825112002j:plain

f:id:ngsw_taro:20180825113154j:plain

我々のKotlinへのを、これでもかと言うくらい伝えられたと思います! このイベントの空気をつくるのは、オープニングにかかっているという気持ちで臨んだ結果、大成功しました。

オープニングセッションのスライドはこちら。

個人的には、↓のスライドは非常によかったと思っています。

f:id:ngsw_taro:20180827114758p:plain

セッション

セッションはホールAとホールBの2トラック同時に行われました。 内容を3つに分類するならば、Kotlinによるプログラミング一般、Androidアプリ、サーバサイドに分けられると思います。

どのセッションも(個人的な体感として)拍手や笑い声、歓声にあふれていて、温かい雰囲気でした。 ツイートやブログを拝見すると、同じように感じられている方が多く見受けられました。 やはり、オープニングでの「盛り上げよう」のメッセージがよかったのかなと思います。

f:id:ngsw_taro:20180825143333j:plain

f:id:ngsw_taro:20180825181837j:plain

各セッションの発表資料は、本イベント connpassのページにまとまっているので、ぜひご覧になってください。

協賛企業ブース

ホワイエでは、ことりスポンサーのブースを出展していました。 どのブースも、工夫を凝らしたコンテンツを提供されていて、面白かったです。

f:id:ngsw_taro:20180827163817j:plainf:id:ngsw_taro:20180827163820j:plainf:id:ngsw_taro:20180827163823j:plainf:id:ngsw_taro:20180827163827j:plainf:id:ngsw_taro:20180827163831j:plainf:id:ngsw_taro:20180827163833j:plainf:id:ngsw_taro:20180827163837j:plain
ことりスポンサーのブース

f:id:ngsw_taro:20180825161907j:plain

また、ドリンクや軽食の提供があり、ホワイエ奥ではAsk the speakerとしてQ&A用スペースを設けていました。 そのため、セッションの合間にはホワイエに多くの人が集まり大盛況でした。

f:id:ngsw_taro:20180825142230j:plain

懇親会

懇親会は会場を移動することなく、ホワイエで行いました。 料理やドリンクが豪華で、Kotlin談義に花が咲きました。

f:id:ngsw_taro:20180825184630j:plain

オープニングでのパックマンルール(輪になって話すときに人が入りやすいようにスペースを空けておくというもの)の紹介をしたことで、話しに入りやすかったという声をいくつかいただきました。 私もいろんな人と話せました!

ありがとう!

オープニングでもクロージングでも何度も言ったけど、まだまだ言い足りないのが「ありがとう」です。 ご協賛いただいた企業様、スピーカーの方々、会場のスタッフの方々、来場者の方々、みなさまに感謝です!

そして、運営メンバーに感謝! みんなイベントの企画や運営の経験や知見やセンスがものすごいし、実際に動き回ってくれたしで、この運営メンバーなくしてKotlin Fest 2018は成り立ちませんでした。

f:id:ngsw_taro:20180825204725j:plain

カンファレンス・レポート

たくさんのレポートが公開されています。ありがとうございます! ここに列挙したいと思います(順不同)。

おわりに

ら、来年もやるぞーーーーーー!!!!!!?

【解決済み】KotlinでWebTestClientを使うと、ジェネリクスまわりでハマる

問題

WebTestClient.BodySpecisEqualToメソッドを呼び出すと、ぬるぽる。

webTestClient.get()
    .exchange()
    .expectBody(MyApiBody::class.java).isEqualTo<Nothing>(expectedBody)

isEqualToを呼び出すためには、その型引数としてNothingを指定する必要がある(そうしないと、コンパイルが通らない)。 これを実行するとNullPointerExceptionが発生する。

解決方法

拡張関数のexpectBodyを使用する。 ただし、IDEはこの拡張関数をサジェストしてくれないので、自分でインポートする(サジェストさえしてくれていれば、あまり悩まずに済んだのに...)。

// これをインポート
import org.springframework.test.web.reactive.server.expectBody
webTestClient.get()
    .exchange()
    .expectBody<MyApiBody>().isEqualTo(expectedBody)

コードの見た目もKotlinらしくスッキリし、テストもちゃんと実行される。

参考: [SPR-15692] Kotlin unable to inherit type for WebTestClient#BodySpec - Spring JIRA

30歳になりました!

f:id:ngsw_taro:20180704112944j:plain

本日、30歳の誕生日を迎えました 🎉

やはり、ひとつの区切り感はありますね。 せっかくなので、僕のこれまでのプログラマー人生について話します。

完全にチラ裏の自分語りです。 ドラマチックな展開もなければ、知見も教訓もありません。 ただ、昔のこと、プログラミングを始めた頃のことを思い出して整理してみたら、自分が初心に返るための便利アイテムになるじゃないかなと思い、 記憶があるうちに書いておきます。

簡単にまとめると

  • コンピュータとその面白さを知った
  • Javaは最高のおもちゃだった
  • 勉強会やコミュニティに参加するようになった
  • マイナーなプログラミング言語と出会った
  • 毎日楽しくお仕事してる

これまでの人生を振り返って、一言で表すと「運がよかった」ですね。 夢中になれるもの、仕事としてやっていきたいものが見つかったのは、とてもありがたいことですが、運とか偶然と言うほかありません。 そして、これも運命の巡り合わせとして、いろんな人と出会いました。 それが自分の人生にものすごくプラスになっていて、感謝しかありません。

では本編を。以降、常体で。

続きを読む