算譜王におれはなる!!!!スマートフォン用の表示で見る算譜王におれはなる!!!!偏りはあると思うけど情報技術全般についてマイペースに書くよ。KtorKtorの面白い特徴のひとつとしては「Webアプリケーションに必要な機能を"install"していくスタイル」を採っていることだと思います。その典型的な例はルーティングです。}}と記述するのとだいたい同じです。その他にも標準で提供されているFeatureはたくさんあって、例えばContentNegotiationやCompressionのようなものがあります。}}今回は、このFeatureを自作してみます。有用なものを作って配布したら、いろんな人にinstallして使ってもらえるかもしれませんね。参考https://ktor.io/advanced/features.htmlhttps://ktor.io/advanced/pipeline.htmlとは言っても役に立ちそうなアイデアがパッと浮かばないので、単純なロギングFeatureを実装したいと思います。objectを定義するです。これに従うことはないとは思いますが、上記参考URLの公式ドキュメントではこうなっていました。こんな感じになります(importは割愛)。}}このコードで一旦はFeatureとしての体を成しています。現時点では何も仕事はしていません。メソッドinstallの引数configureが、独自定義の設定用クラスConfigurationの拡張関数になっていることに注目してください。このFeatureのユーザは、ラムダ式の中でConfigurationのプロパティにアクセスすることで設定を組み立てていきます。}}さて、まだ何の面白いこともしていないMyLoggingですが、リクエストの前後でログを出力したいと思います。2つ前のコードのメソッドinstallに再び注目してください。第1引数pipelineを扱います。PipelineもKtorの面白い特徴のひとつなんですが、ドキュメントコメントの言葉を借りればこれは「非同期の拡張可能な計算のための実行パイプラインを表す」ものです。Pipelineにはフェーズがあって、そのフェーズをインターセプトすることができます。feature}余談ですが、メインのApplicationCallPipelineには5つのフェーズがあって、今回は"Features"というフェーズをインターセプトしました。本来であれば"Monitoring"でやるべきだったのかなと思いつつCallLoggingという標準のロギングFeatureのコードを読んでみたら、新たに"Logging"というフェーズを作り、"Monitoring"の前に挿入していました。いうプレイングもあるのか...。今回つくってみたMyLoggingの使ってみた結果はこんな感じです。CallLoggingも併用しています。Ktorアドベントカレンダーの季節なので、KtorでWebアプリケーションを作るときのことを考えたメモを残します。いわゆるコントローラ、リクエストを受けてごにょごにょしてレスポンスを返すところを担うやつ。ルーティング、パスとコントローラを紐づけるやつ。Ktorでこの両者をどう扱うかを考えてみました。HelloWorldの延長線上でズラズラとコードを並べるとこんな感じになります(完全なコードではありません)。コントローラの役割とルーティングが同居する世界です。これを基本形として、いくつかの工夫を見ていきたいと思います。}}公式サンプルではどうやっているかKtorはサンプルプログラムを豊富に提供していて、その中にはそこそこ本格的なアプリケーションも含まれています。TwitterみたいなKweetというサンプルです。拡張関数を使っているところです。Locationsはパスを表現するクラスをいい感じに扱えるようにしてくれます。詳細は公式ドキュメントに譲りますが、Locationsがどのように使われているのかざっくり説明します。APIについて考えます*1。パスを指定して、クラスにくっつけます。ようなパスを表現することが可能です。ルーティングをこのように書き直すことができます。セットされるので、これを簡単にアクセスすることができます。拡張関数を別ファイルに定義しています。ラムダ式の中身をこのように書き換えます。deleteUser(userRepository)}ファイルを分割し、見通しはよくなった気がしますが、実質的にはコントローラの役割とルーティングが合わさっているように思えます。クラスと対応していることを知っています。コントローラクラスを導入する個人的にこれを改善しうるのって、いつものコントローラクラスだと思っています。リソース1種類につき、ひとつのコントローラクラス。素直にコーディングすると、今回の場合はこのような感じになりそうです。}}そしてルーティング側はこうなります。Locationsはなくていいかもしれませんね。中でパスとHTTPメソッドに紐づける方式がよいのではなかろうかと。Locationsも要らない、ややこしくしているだけ説。UbieではKtorアプリケーションが爆誕しつつあるんですが、リリースされて本格的に運用が始まったらこの仮説は崩れるのだろうか。レンダリングなアプリケーションなので、今回の例とはそこらへんが異なりますが本質的な問題ではないでしょう。2019」を開催します。15セッション、企業展示ブース(予定)参加人数500名程度チケットは7月上旬に販売開始予定です。詳細は下記サイトをご覧ください。一貫して「Kotlinを愛でる」というテーマで企画・運営しています。ご来場のみなさまに、Kotlinに関する知見の共有と、ほかのKotlinファンとの交流を楽しんでいただければ幸いです。今回はご講演者さまを公募するという試みを行います。23:59までにお申し込みください。までお願いいたします。教会でやるやつと、飲み食いしながらワイワイやる披露宴を都内某所にて。最高に楽しかったけど、初めて自分の結婚式を開催するということで、準備は相当しんどかったです。いうことで、このエントリは結婚式とその準備の振り返りについて書こうと思います。結婚式のなんやかんや一般論ここらへん言いたいことたくさんあるけど、ちょこっと列挙するだけにとどめておきます。結婚式への個人的な思い妻と出会うずっと前から「結婚したら友達を呼んで結婚式をやりたい」と思っていました。友達や家族と飲みに行くのが大好きなので「自分の結婚式=友達オールスター+家族と飲める場所」と捉えていたのです。それから「ご祝儀や会費がない結婚式」も、以前からやってみたいと思っていました。言うほど大層なことではなりませんが、少なくとも自分はそのような結婚式を体験したことはありませんでした。祝儀が少ないだなんだのつまらないアレ引出物なし単純に変わったことをやりたかった自分の親、妻の親からの経済的な援助ももらってません。その代わりに、両親たちが要望を言うこともなかったし、自分たちがやりたい結婚式を好きにデザインできたと思います。変わったことをやりたかったという点で、もう一つ。招待状の機能も含めた結婚式アプリを開発して、出席者に使ってもらいました。Authenticationを利用しました。プッシュ通知にはPushnateを利用しています。独自ドメインも取得しました。開発で苦労したのはアプリ組み込みのWebViewの対応でした。Firestore等は初めて使ったので調査しながらの開発になりましたがすごく便利で助かりました。ホーム画面にランチャーアイコン追加やプッシュ通知の実装なども勉強になりました。結婚式当日ウェルカムスペースでアルコールと軽食を提供したのはよかったこれは僕だけかもですが、やっぱすぐ飲みたいよね僕も少しだけ(時間にして10分ほど)ウェウカムスペースに登場して、ゲストと会話を楽しんだジャズの生演奏もおしゃれチャペルでの挙式、始めは少し緊張したが、入場すると知ってる人しかいないので緊張が和らいだ詳細には記載しないが、要所要所で笑いを取れてよかったチャペルからの退場時、バブルシャワーにしたけど当日の晴天も手伝って綺麗だった挙式前のウェルカムスペースでみんなとはしゃぐ様子ハッシュタグを設定したのはよかった。タイムラインが大盛り上がりだった。@yusukeさんスピーチはUbieの阿部(白衣着用)と久保(自作ラップで祝福)ラップ前で緊張する久保(左)と白衣着用の阿部(右)お色直しは和装。再入場曲はミュージックステーションのあれ。会場の手拍子が揃って嬉しかったうちの父のノリは大好評だった。二次会から参加するゲストも多くいらっしゃいました。二次会は会費をいただいています。二次会はたくさん会話したかったのでコンテンツを少なめにしました。友人からの乾杯の挨拶と、ゲームをひとつ、です。ゲームは独自に思いついた「インタビュー・ビンゴゲーム」というものです。3マスのビンゴカードには、各マスに新郎新婦にちなんだキーワードが書かれています。抽選で選ばれたゲストが、新郎あるいは新婦を指名し、インタビューします。そのインタビューへの回答が、キーワードと一致したとき、そのマスが開くというビンゴゲームです。ゲーム性を高めるため、各マスにはそのキーワードの出現数を併記しています。出現数が多いキーワードを開けためのインタビューをすると、他プレイヤーにも恩恵があるということです。二次会にはチューバッカとトルーパーも駆けつけてくれました後日いろんな人から写真や動画をいただいた様々なアングルなのイイ動画の場合、その席周辺のリアクションが入ってて面白いお祝いの品物をたくさんいただきました完全無料とか言いながらAmazonの欲しいものリストを公開していました。お礼とともに、お名前を紹介させていただきます(敬称略・順不同)。@gfxそして、二次会は会費をいただいたのですが、特典がないにも関わらずやや高めの会費設定をした枠で申し込んでくださったみなさまにも感謝申し上げます(敬称略・順不同)。@th_1983その他、高校や中学の友人からもお祝いをいただきましたが、Twitterアカウントを知らないため紹介は割愛させていただきます。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。