僕はここだ!

読書記録とか、ポエムとか、メモとか、コードスニペットとか。まとまったのはQiitaにも書きます。(http://qiita.com/RyotaMurohoshi) 掲載内容は個人の見解であり、所属する企業を代表するものではありません。

de:code 2019で「C# ドキドキ・ライブコーディング対決」でメンバーの一人として登壇した! #MW51 #decode19

5/29(水)・30(木)、ザ・プリンスパークタワー東京で開催されたde:code 2019にて、「C# ドキドキ・ライブコーディング対決 @ de:code - ONLY C#!! Blazor Web 開発バトル -」のメンバーの一人として登壇しました。

de:codeはマイクロソフトによる最大13並列セッションの超大規模テックイベントです。

以下、de:code公式ページの説明より

de:code (デコード) は、開発者をはじめとする、IT に携わるすべてのエンジニアの皆様を対象にした、今年で 6 回目となる年に一度のテクニカル カンファレンスです。de:code 2019 では、AI、Mixed Reality、サーバレス、コンテナ、IoT をはじめとする、「今すぐ使えるテクノロジ」と「未来を創るテクノロジ」を知り、学び、体験いただけるセッションとプログラムを提供いたします。また、直前に米国シアトルで開催される開発者向けイベントである Microsoft Build (2019 年 5 月 6 日 - 8 日) で提供される最新情報も凝縮して、日本のお客様にいち早くお届けします。

私がメンバーの一人として登壇したセッションは、チョークトークというタイプのセッションです。チョークトークは、登壇者がプレゼンをする形式のセッションではなく、登壇者と参加者がインタラクティブにやりとりをする形式のセッションです。他のチョークトークセッションには、「Azureについてなんでも答えます!」「HoloLensなんでも質問答えます!」みたいなセッションなどがありました。

「ドキドキ・ライブコーディング対決」は、毎年冬の北陸で開催されるBuriKaigiというイベントの恒例セッションです。どんなセッションかは、以下の過去記事からどうぞ。

今回、de:codeという大きな舞台で

と一緒にドキドキライブコーディングをすることができて、とても嬉しかったです!

機会をくれたchack411さん、巻き込んでしまったBlazorに詳しい@jsakamotoさん、ありがとうございます。

特に毎回大変な企画・幹事をしてくださっている@AILightさん、ありがとうございます。

どんなセッションだったかは秘密です。ごめんなさい。

(技術的なことだけ、この投稿の後半で補足します)

ありがとうございました

C# ドキドキ・ライブコーディング対決 @ de:code - ONLY C#!! Blazor Web 開発バトル -」に来ていただいた皆さん、本当にありがとうございました。

楽しんでいただけたでしょうか?「面白かった」「笑った」「よかった」と思っていただけたら、とても嬉しいです。

セッションは満員で、100人近い参加者の方が来てくださったそうです。裏番組には、人気のセッションがいくつもあったのに。来ていただいて本当にありがとうございます。

セッション部屋は横長で、我々登壇者と参加者のみなさんが非常に近く、皆様のリアクションがとてもよく見えました。一緒に笑い、ツッコミを入れ、盛り上げてくれた参加者の皆さん、ありがとうございます。楽しいセッションになったのは、みなさんがいてくれたからです。本当にありがとうございます。

TwitterFacebookを覗くと「面白かった」という声をみつけることができ、本当に嬉しくなります。準備・本番、頑張ってよかったです。

もし「期待していたのと違った」という感想を持たれた方がいたら、ごめんなさい。

さて、実は直前になって私は少しヒヨってしまっていました。しかし、@AILightさん、@Fujiwoさん、@xin9leさん、そしてchack411さんが言う通り、普段通りの「ドキドキ・ライブコーディング」をして本当によかったです。

残念ながら、本セッションはビデオ録画はありません。「楽しかったなー」という記憶をしっかりと心に保存しておいてください。また何かのイベントで披露する機会があったら、その時にはまたぜひ遊びに来てください。その時もまた暖かい応援とヤジをよろしくお願いします。

テクニカルな補足

さてセッションの録画や資料はお見せできません。

が、私はBlazorでJavaScript相互運用機能を使いました。その技術的な補足を一つ。

ここを読んでいること前提です。

JavaScript相互運用機能は、コンポーネント内でIJSRuntimeをインジェクトする必要があります。が、プログラミングバトルで私が編集できるコードはコンポーネントではないため、IJSRuntimeをインジェクトできず、普通であればJavaScript相互運用機能を呼び出せません。

今回どうしてもJavaScript相互運用機能を使いたいため、MonoWebAssemblyJSRuntimeインスタンスを作成して(普通にコンストラクタが呼べる)、無理やりJavaScript相互運用機能を使いました。

セッション中も言及しましたが、絶対にこの方法は真似しないでください。この辺りを見る限り、想定外の挙動をすると思われます。あくまでプログラミングバトル用の対処ですので、絶対に真似をしないでください。

IJSRuntimeとかMonoWebAssemblyJSRuntimeとかのコードについて追った記事を書いたので、興味がある人はぜひ!

qiita.com

実は企画が決まった段階から、「DOMを書き換えよ!JavaScript相互運用機能を使おう!」というのを決めていました。これを実現するために、なかなか苦労したのですが、実現できてよかったです。

「DOMを書き換える!」というのプレゼンした時、部屋に笑いが起きて本当に良かった。滑ったり、怒られたらどうしようかと思った。良かったー。

もう一度ありがとうございました

セッションに参加していただいた皆さんありがとうございました。

会場スタッフさん、スイッチャーやマイク調整など、僕らのセッションは他より大変だったと思います。ありがとうございます。(セッションを終えてスタッフさんもちょっとだけ笑っていたのを見ました。嬉しかったです(お仕事は完璧でした。)

今回、de:codeという大きな舞台で

と一緒にドキドキライブコーディングをすることができて、とても嬉しかったです。

巻き込んでしまったBlazorに詳しい@jsakamotoさん、ありがとうございます。Blazorのエキスポセッション、最高でした。

また機会をくれたchack411さん、ありがとうございました

そして、@AILightさん、企画・幹事、いつもありがとうございます。

また、いつかどこかの舞台で。

Twitter

@jsakamotoさんのエキスポセッション、マジで良かった。

この時緊張マックス。

やりきって、肉くって、酒飲んで安堵のツイート1

やりきって、肉くって、酒飲んで安堵のツイート2

太った!

太った理由

写真

セッション部屋前にて。

f:id:MRStar:20190601191934j:plain

リハーサル後。

f:id:MRStar:20190601191938j:plain

本番後。

f:id:MRStar:20190601191943j:plain

フォトコーナーにて。

f:id:MRStar:20190601191931j:plain