No Purpose

If I must say, it's for me.

「Engineer x Coffee Meetup! Vol.1| by WORC」でLTをした #worccoffeemeetup

2019/11/27に縁あってこちらのイベントでLTしてきたので、諸々のメモ。

worc-meetup-20191127.peatix.com

経緯

以前、何回かTokyoWebCoffeeという、Web界隈のコーヒー好きが集まるMeetupに参加したことがあって、そこの中心的人物だった @tetsuyaさんから発表の話を持ちかけてもらい、LT発表することにした。結局、今回の発表者はそのtetsuyaさんとTokyoWebCoffee主催者の @kozo002 さんと僕だったので、発表者3人は顔見知りって感じでやりやすかった。

tokyoweb-coffee.connpass.com

発表資料

※ 今回の発表はかなりDEMOやスライド外の説明で補足しながらだったので、改めてこのブログで諸々書きたい

今回の発表テーマについて

f:id:highwide:20160120144447j:plain
SCAA Coffee Taster's Flavor Wheel

↑こういうものがあって「コーヒーの味を表現するときに便利」くらいの雑な認識を僕は持っている。ちなみに、このFlavor Wheelについても、教えてもらったのはTokyoWebCoffeeのMeetupだったなと今思い出した。すごいコミュニティだ。 ちなみにワインでも同様のものがあって、ワイン通らが言う「木の皮のような」とか「白い花のような」みたいなのも押さえられているらしい。

で、このSCAA Coffee Taster's Flavor Wheelについては、前職のときに誰かがコーヒーを淹れたあと、「別に味覚にそれほど自信があるわけではないけれど私はこう感じました」みたいな話をワチャワチャとするときにおもしろかった記憶があり、このコミュニケーションをSlack上で楽にやれたらおもしろいかもしれないと考えた。

作ったもの

このgifのように、Slack上で、どんな味を感じたかFlavor Wheelの内側から順番に選択していくようなSlash Commandを作った。

f:id:highwide:20191128005016g:plain

発表資料にもあるように、TypeScriptで作ったExpressをGlitch上でtscして動かすようにしている。

f:id:highwide:20191128005609j:plain
構成

ポイントは、最初のSlash Commandに対応するmessageを送ったあと、SelectBoxの中身やユーザーの選択内容がInteractiveに書き換えられているところで、これは動いているのを見ると得も言われぬ自己満足感を覚えることができる。

Slash Commandについては、Slack公式が日本語で書いてくれていたチュートリアルが大変わかりやすかった。

api.slack.com

Interactive Messageについては、ドキュメントを見ながら手探りで実装をしていったが、当初は慣れないGlitchでのデバッグが難しかった。(というか、結局printデバッグばかりしていた)

また、自身のTypeScriptの習熟になるように、ExpressをTypeScriptで書くようにやっていたのだが、迫りくる発表当日...という時間との戦いに心折れ、随分とAnyでごまかすようなコードになってしまった。とはいえ、それでも型検査によってバグの予防ができた感はあったので、体験としておもしろかった。

今回の失敗

複数人が投票できない仕組みになってしまった

現職ではSlackの /vote コマンドや /polly コマンドがよく使われていて*1、正直言うとそれにインスパイアされたのだが、いつの間にか、複数人による「投票」のようなことができない仕組みにしてしまっていた。(誰か一人しか入力ができないのだ)

ひとつのメッセージに対して、複数人が選択することで「highwideさんはシトラスっぽさを感じたよ」「うちやまさんはハチミツっぽさを感じたよ」「たかひろさんはスモーキーっぽさを感じたよ」って出てくると、コミュニケーションとしてはおもしろいと思ったのだが...。

ひとりでSlackのコマンドを開発してると、第三者からどう見えるかどう操作できるかって、わかりにくいんだなって思った次第だ。

SCAA Coffee Taster's Flavor Wheelのライセンスについての考慮不足

www.scaa.org

上のページにあるように、このFlavor WheelはCreative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)となっている。

Creative Commonsについて調べると「あなたがこの資料を リミックスし、改変し、あるいはこの資料をベースに新しい作品を作った場合、あなたは改変された資料を頒布してはなりません」とあり、今回実装したように「Flavor Wheelをプログラム上で取り扱えるようにする」というのが「改変」にあたるのではないかと(実装後に)気がつき、リポジトリをPublicにすることを見送っている。

creativecommons.org

失敗したとはいえ...

普段あまり触ることのないExpressやGlitchなどを触ったり、SlackのAPIについてわかることが少し増えたり、そもそも久しぶりのLT発表ができたりと、楽しい機会になった。

イベントについて

みんなコーヒーについてのレベルが高い...。発表も懇親会めちゃくちゃおもしろかった。

@katsumata_ryoさんが素敵な写真付きでレポートを書いているのでみてほしい。

medium.com

特に、プロなのだからレベルが違うのは当たり前のだが、LIGHT UP COFFEEの川野さんの論理と数値によってコーヒーを解き明かそうとするようなアプローチがとても印象に残っている。資料も後ほど公開されるようで、プロのノウハウがシェアされるのはありがたいなぁって思っている。

*1: 突如チャット上に現れたVoteには「犯人はujihisa」というReactionがよくつけられている