Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
/kzlt コマンドとは
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
muryoimpl
November 26, 2022
Technology
0
1k
/kzlt コマンドとは
Kanazawa.rb meetup #124 向けに作った、Slack の slash command /kzlt がどんなものかを記述したもの。meetup #123 で発表した。
muryoimpl
November 26, 2022
Tweet
Share
More Decks by muryoimpl
See All by muryoimpl
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
840
人魚とたわむれる
muryoimpl
0
42
Kanzawa.rbのLT大会を支える技術の裏側を変更する Ruby on Rails + Litestream 編
muryoimpl
0
1.6k
Kanazawa.rb LT大会用/kzlt コマンドの説明 2024/01版
muryoimpl
0
3k
kzltコマンドの新たなソリューションについて
muryoimpl
0
3k
俺とTODOアプリ~Linearの変~
muryoimpl
0
2.7k
POSIX文字クラスでの躓き
muryoimpl
0
2.3k
meetup.kzrb.org の更新を考える 事前激闘編
muryoimpl
0
1.6k
meetup.kzrb.org の更新を 考える ゆるふわ編
muryoimpl
0
1.6k
Other Decks in Technology
See All in Technology
身体を持ったパーソナルAIエージェントの 可能性を探る開発
yokomachi
1
100
AIエージェント時代に備える AWS Organizations とアカウント設計
kossykinto
3
760
脳内メモリ、思ったより揮発性だった
koutorino
0
130
JAWS DAYS 2026 ExaWizards_20260307
exawizards
0
410
新職業『オーケストレーター』誕生 — エージェント10体を同時に回すAgentOps
gunta
4
1.8k
クラウド × シリコンの Mashup - AWS チップ開発で広がる AI 基盤の選択肢
htokoyo
2
180
[JAWS DAYS 2026]私の AWS DevOps Agent 推しポイント
furuton
0
140
NewSQL_ ストレージ分離と分散合意を用いたスケーラブルアーキテクチャ
hacomono
PRO
2
230
2026-03-11 JAWS-UG 茨城 #12 改めてALBを便利に使う
masasuzu
2
350
JAWSDAYS2026_A-6_現場SEが語る 回せるセキュリティ運用~設計で可視化、AIで加速する「楽に回る」運用設計のコツ~
shoki_hata
0
3k
「ストレッチゾーンに挑戦し続ける」ことって難しくないですか? メンバーの持続的成長を支えるEMの環境設計
sansantech
PRO
3
640
Scrumは歪む — 組織設計の原理原則
dashi
0
120
Featured
See All Featured
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
230
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
130
A Modern Web Designer's Workflow
chriscoyier
698
190k
sira's awesome portfolio website redesign presentation
elsirapls
0
190
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
190
Building an army of robots
kneath
306
46k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
100
It's Worth the Effort
3n
188
29k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
150
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
130
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
Transcript
/kzlt コマンドとは 2022/11/19 (Sat) Kanazawa.rb meetup#123 muryoimpl
おしながき 1. What 2. Why 3. How
これは何? • Slack の スラッシュコマンドを利用した、Kanazawa.rb むけの LT エントリ & シャッフ
ル用のコマンドです。Slack のアプリとして登録されています • バックエンドは Google の Spreadsheet です (ここで Spreadsheetをみせる) • 以下のようなコマンドをサポートしています /kzlt create -- 今回のLT大会用の枠を作成する /kzlt entry 'LTタイトル' -- 自分のLTを登録する /kzlt my -- 自分のエントリしたLTを自分にだけ表示する /kzlt list -- エントリー済みのLTをchannelに出力する(順番を決めたものを除く) /kzlt all -- エントリー済みのLTを出力する(順番決めた/決めてない関係なく) /kzlt shuffle -- 順番を決め、channelに出力する (次のshuffleに出てこない) /kzlt reset -- 順番決めたものすべてを順番決めていないことにする /kzlt remove 'エントリ番号' -- エントリ時に返ってきた番号を指定してエントリを削除する
これは何? • 以下のような特徴・制限があります • /kzlt create したタイミングで、そのChannel 用の シートが作成される •
/kzlt entry <タイトル> を入力すると、シートに追記される • セルを探して書き込むため race condition がありますが、割り切ってます • /kzlt shuffle で順番を決め、順番と markdown 用テキストが Channel に書き 込まれます • /kzlt reset で順番ぎめをなかったことにします • /kzlt remove <id> で、エントリしたものをなかったことにできます。id はエント リ時のレスポンスに含まれています
なぜつくった? • LT のたびに、運営者がタイトルを訊いて書き込み、シャッフルして、かつ、 markdown に書き込むのたいへんじゃね?と思った • ↑は運営者の熟練度に左右されそう • 話す人が任意のタイミングで登録できるほうが、おかわり
LT あったときに対応しや すそう • 年末 LT のネタにしたかった (が、今話してしまっている……)
どんな仕組み Slack Apps Script /kzlt を入力 POST リクエスト Webアプリとして公開された Apps
Script end- point レスポンス Spread sheet 結果を 書き込む doPost() 関数 hook で呼び出す
どんな仕組み? • AWSやGCPのサービスを利用するとより高性能なものができるが、無料でできるこ とと、特別感のない == 気がねない ものとして、Spreadsheet を採用した • ↑そのため、運営でなく、利用者側に泣いてもらう仕組みが一部ある
◦ シートに書き込む仕様上、 race condition でエントリが登録できない可能性がある (きっと) • Google Apps Script は Webアプリとして公開することが可能なので、ここで公開さ れたエンドポイントをSlack の Slash command のバックエンドとして指定している。 • /kzlt create のようなサブコマンドは、Google Apps Script 側で解析して処理してい る。
Slashコマンドはどうやってつくる? • https://api.slack.com/apps?new_app=1 からAppを作り、後の画面で「Add features and functionality」が出てくるので、Slash comands を クリックし、
「Create New Command」をクリックする • ここでコマンド名(今回は /kzlt) を入力し、Request URL にGoogle Apps Script を 公開した際のURL を設定する。これだけ • あとは Google Apps Script で頑張るのだ! Google Apps Script はデプロイごとにURLが変わってしまうので、新しくデプロイするの ではなく、一度デプロイしたもののバージョンを更新する必要がある。
さすがにいきなり全部理解するのは難しいので • https://github.com/kanazawarb/kzlt の main ブランチにコミットを積むと GitHub Actions で Google
Apps Script のデプロイを更新するようになっているので、変更 を試す場合はこちらに直接変更をpushするのがよいです。 テスト環境はない!ので、commit を revert もしくは歴史改ざんして! • 神権限を使って直接Spreadsheetに手を入れることもできなくはないが、変更して いる途中にリクエスト来たら……とか考えたくないので、シートごと削除して再度 /kzlt create が現実的 • 今のところ神はmuryoimplとkiyoharaのみとなってます • Kanazaw.rb といいつつ、GAS なので JavaScript 書かないといけないのは許して ……
さいご 来月(2022年12月) 使ってくれるとうれしい!うれしい!