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

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

結婚式をしたよ〜(ゲスト完全無料・自作招待状アプリ・世界のトレンド) #たろかな婚

f:id:ngsw_taro:20190413103534j:plain

先日 結婚式を挙げました。 教会でやるやつと、飲み食いしながらワイワイやる披露宴を都内某所にて。 最高に楽しかったけど、初めて自分の結婚式を開催するということで、準備は相当しんどかったです。 ということで、このエントリは結婚式とその準備の振り返りについて書こうと思います。

結婚式のなんやかんや一般論

ここらへん言いたいことたくさんあるけど、ちょこっと列挙するだけにとどめておきます。

  • そもそも何度も利用するものではないのでユーザーが繰り返し学習するような構造ではない
  • そのためかどうか、ユーザーと提供者(式場側)に情報の非対称性がある
  • 初回の見積もり時よりも最終的な請求額が高くなるのは、そうした理由が大きく占めるのではないか
  • 情報の非対称性、人生一度きりの希少性だけでなく、ご祝儀前提の強気な価格設定

結婚式への個人的な思い

妻と出会うずっと前から「結婚したら友達を呼んで結婚式をやりたい」と思っていました。 友達や家族と飲みに行くのが大好きなので「自分の結婚式=友達オールスター+家族と飲める場所」と捉えていたのです。

それから「ご祝儀や会費がない結婚式」も、以前からやってみたいと思っていました。 言うほど大層なことではなりませんが、少なくとも自分はそのような結婚式を体験したことはありませんでした。 なぜ完全無料の結婚式をやりたかったのかと言うと

  • 我々夫婦のために自分の時間を割いて出席してくれている人たちへの感謝の気持ち
  • お金が絡むことで発生する双方の雑務・トラブルの回避
    • 新券熨斗袋を用意する手間
    • 式当日の受付担当者によるご祝儀の管理
    • 祝儀が少ないだなんだのつまらないアレ
    • 引出物なし
  • 単純に変わったことをやりたかった

自分の親、妻の親からの経済的な援助ももらってません。 その代わりに、両親たちが要望を言うこともなかったし、自分たちがやりたい結婚式を好きにデザインできたと思います。

変わったことをやりたかったという点で、もう一つ。 招待状の機能も含めた結婚式アプリを開発して、出席者に使ってもらいました。

f:id:ngsw_taro:20190428115453p:plainf:id:ngsw_taro:20190427173017p:plainf:id:ngsw_taro:20190427173058p:plainf:id:ngsw_taro:20190427173049p:plain
招待状に回答すると各種コンテンツを閲覧できる

Reactで開発し、Firebase Hosting, Firestore, Cloud Storage, Authenticationを利用しました。 プッシュ通知にはPushnateを利用しています。 独自ドメインも取得しました。

開発で苦労したのはアプリ組み込みのWebViewの対応でした。 Firestore等は初めて使ったので調査しながらの開発になりましたがすごく便利で助かりました。 また、ホーム画面にランチャーアイコン追加やプッシュ通知の実装なども勉強になりました。

結婚式当日

  • ウェルカムスペースでアルコールと軽食を提供したのはよかった
    • これは僕だけかもですが、やっぱすぐ飲みたいよね
    • 僕も少しだけ(時間にして10分ほど)ウェウカムスペースに登場して、ゲストと会話を楽しんだ
    • ジャズの生演奏もおしゃれ
  • チャペルでの挙式、始めは少し緊張したが、入場すると知ってる人しかいないので緊張が和らいだ
  • 詳細には記載しないが、要所要所で笑いを取れてよかった
  • チャペルからの退場時、バブルシャワーにしたけど当日の晴天も手伝って綺麗だった

f:id:ngsw_taro:20190413100059j:plain
挙式前のウェルカムスペースでみんなとはしゃぐ様子

  • ハッシュタグを設定したのはよかった。タイムラインが大盛り上がりだった。Togetterまとめ
    • かねてより僕はフリー素材であることを公言しているので、たくさん写真がアップされてた
  • BGMは考え抜いた。披露宴、新郎新婦入場前の曲は東京ディズニーシーのエントランス曲で、入場曲は布袋さんのスリル

f:id:ngsw_taro:20190427192309p:plain
「世界のトレンド」にもなった #たろかな婚 は3万8千人にリーチ

  • オープニングムービー、プロフィールムービーは撮影、編集ともに頑張ったよ
  • 乾杯のご挨拶をいただいたのは師匠である @yusukeさん
  • スピーチはUbieの阿部(白衣着用)と久保(自作ラップで祝福)

f:id:ngsw_taro:20190413122647j:plain
ラップ前で緊張する久保(左)と白衣着用の阿部(右)

  • お色直しは和装。再入場曲はミュージックステーションのあれ。会場の手拍子が揃って嬉しかった
  • うちの父のノリは大好評だった。最後の挨拶ではいい話もしてくれた
  • 記念品として母には花束を、父にはチロルチョコ一年分を贈った
  • 涙なし笑いしかない、自由で疲れない結婚式を実現できたと思っている

f:id:ngsw_taro:20190427180837j:plain
チロルチョコ一年分贈呈

二次会

二次会も開催しました。 二次会から参加するゲストも多くいらっしゃいました。 なお、二次会は会費をいただいています。

二次会はたくさん会話したかったのでコンテンツを少なめにしました。 友人からの乾杯の挨拶と、ゲームをひとつ、です。

ゲームは独自に思いついた「インタビュー・ビンゴゲーム」というものです。 3 x 3マスのビンゴカードには、各マスに新郎新婦にちなんだキーワードが書かれています。 抽選で選ばれたゲストが、新郎あるいは新婦を指名し、インタビューします。 そのインタビューへの回答が、キーワードと一致したとき、そのマスが開くというビンゴゲームです。

ゲーム性を高めるため、各マスにはそのキーワードの出現数を併記しています。 つまり、出現数が多いキーワードを開けためのインタビューをすると、他プレイヤーにも恩恵があるということです。

f:id:ngsw_taro:20190413163737j:plain
二次会にはチューバッカとトルーパーも駆けつけてくれました

後日

  • いろんな人から写真や動画をいただいた
    • 様々なアングルなのイイ
    • 動画の場合、その席周辺のリアクションが入ってて面白い

お祝いの品物をたくさんいただきました

完全無料とか言いながらAmazonの欲しいものリストを公開していました。 そしたら、たくさんの方々からお祝いをいただきました!新婚生活、新婚旅行に活用させていただきます! お礼とともに、お名前を紹介させていただきます(敬称略・順不同)。

@mhidaka / @red_fat_daruma / @spetsnaz0173 / @yusuke / @syobochim / @bols_blue / @mstssk / @yukishigedo / @napplecomputer / @jooohn1234 / @maeharin / @nantani4 / @tomoya0x00 / @zinbe / @smochi_pub / @vvakame / @iwata_n / @RyotaMurohoshi / @mike_neck / @mochicon / @th_1983 / @shiraj_i / @takuyais / @toorusen / @ta9mar / @gfx

そして、二次会は会費をいただいたのですが、特典がないにも関わらずやや高めの会費設定をした枠で申し込んでくださったみなさまにも感謝申し上げます(敬称略・順不同)。

@ta9mar / @yusuke / @quvo_ubie / @red_fat_daruma / @95kugo / @sys1yagi / @takayamag / @th_1983

その他、高校や中学の友人からもお祝いをいただきましたが、Twitterアカウントを知らないため紹介は割愛させていただきます。

まとめ

  • 結婚式はある意味 情報戦。ネットなどの口コミで調べまくる、式場の人に聞きまくるのがいいと思った
  • ご祝儀がないと新郎新婦も親族もゲストもみんなハッピーになれるのでは説
  • 我々夫婦らしい、気取らず疲れず、とにかく笑いが絶えない、そんな結婚式ができた
  • 改めて、みんなに愛されていることを感じた

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