Slide 1

Slide 1 text

HubotxChatOps#1 bouzuya 0

Slide 2

Slide 2 text

ぼくのこと

Slide 3

Slide 3 text

こんにちは

Slide 4

Slide 4 text

ぼく、ぼうずや

Slide 5

Slide 5 text

bouzuya twitter.com/bouzuya github.com/bouzuya

Slide 6

Slide 6 text

Q. 名前おぼえられますか? むり 身体的特徴で覚えましょう

Slide 7

Slide 7 text

おぼえかた→ぼうず (Hubot|神戸|FaithCreates Inc.)のぼうず ぼうずだから bouzuya

Slide 8

Slide 8 text

はなすこと

Slide 9

Slide 9 text

1. スクリプト たくさん書いた その結果…… ―― 1 日 1 Hubot スクリプト 2. だれだって できないことが あるんだよ ―― Hubot にできることできないこと 3. もういいよ あきらめたって いいんだよ ―― ローカル Hubot

Slide 10

Slide 10 text

1. スクリプト たくさん書いた その結果……

Slide 11

Slide 11 text

ぼくが呼ばれた理由

Slide 12

Slide 12 text

「Hubot の Plugin をたくさん作られてい る @bouzuya さんが兵庫なので,兵庫, 大阪辺りで開催できないかな,と思って います」 (一部、省略) 開催地、まさかの bouzuya 基準。

Slide 13

Slide 13 text

理由 → たくさんの Hubot スクリプトを書いたから (質は問わない)

Slide 14

Slide 14 text

たくさん = 130 個 (2014-11-22 時点) すごい……のか……?

Slide 15

Slide 15 text

参考: 2014-11-17 時点 旧公式の github/hubot-scripts : 462 現公式の hubot-scripts/* : 105

Slide 16

Slide 16 text

たとえば、どんなのを書いたのか……

Slide 17

Slide 17 text

hubot-sakagemc hubot-lgtm hubot-mstr hubot-pr hubot-backlog-report hubot-marimo hubot-taka hubot-twada

Slide 18

Slide 18 text

画像とか

Slide 19

Slide 19 text

hubot-sakagemc @sakagemc (元同僚) が運営する peaklife.jp よ り画像を返す

Slide 20

Slide 20 text

hubot-lgtm lgtm.in/g から画像を返す (余談: 弊社では「よいかと」もよく使われます)

Slide 21

Slide 21 text

hubot-mstr mstr.in から画像を返す (hubot-lgtm の例が悪いせいで両方飯テロぽい)

Slide 22

Slide 22 text

まじめなの

Slide 23

Slide 23 text

hubot-pr プルリクエストをマージする (デプロイのトリ ガー)

Slide 24

Slide 24 text

hubot-backlog-report (加工が面倒なので画像なし) その日、完了にしたチケットの一覧を返す

Slide 25

Slide 25 text

単純応答

Slide 26

Slide 26 text

hubot-marimo b o u z u y a > h u b o t m a r i m o h u b o t > ● b o u z u y a > h u b o t m a r i m o 5 h u b o t > ● ● ● ● ● まりも。

Slide 27

Slide 27 text

hubot-taka b o u z u y a > h u b o t 一体何者なの? h u b o t > 鷹に決まってんじゃねえか 自称、鷹。(CV:若本規夫)

Slide 28

Slide 28 text

hubot-twada b o u z u y a > テスト書いてない h u b o t > テスト書いてないとかお前それ @ t _ w a d a の前でも同じこと言えんの? b o u z u y a > テスト書きたくない h u b o t > テスト書きたくないとかお前それ @ t _ w a d a の前でも同じこと言えんの? 励まし。

Slide 29

Slide 29 text

……正直、もう何をつくったか把握してな い。

Slide 30

Slide 30 text

なぜ、つくったのか?

Slide 31

Slide 31 text

『 1 日 1 Hubot スクリプト』

Slide 32

Slide 32 text

ルール 1 日 1 つ Hubot スクリプトをつくる

Slide 33

Slide 33 text

きっかけ 『 1 日 1 創』jig.jp福野さん 量は質に転じる? ゴミの山でもラベルをつければ…… ぼくにもできる? 何をつくるのか?→手ごろなもの Hubot ス クリプト

Slide 34

Slide 34 text

やってわかった 5 つのこと

Slide 35

Slide 35 text

1. 確実に増える実績。 「草生える」

Slide 36

Slide 36 text

2. はやくつくる工夫。 bouzuya/hubot-script-boilerplate 「テンプレート化」

Slide 37

Slide 37 text

3. 玉石混交。 「まりもって、なんだよ……」

Slide 38

Slide 38 text

4. アイデアが出ない。 「漫画連載とかつらいんだろうな(現実逃避)」

Slide 39

Slide 39 text

5. 忙殺。 「今日のことで手いっぱい」 「バージョンアップとかできるわけない」 →何を目的とするのか?続けて量で質 を……?偶然できた何かを発展させる?

Slide 40

Slide 40 text

1. のまとめ bouzuya は『 1 日 1 Hubot スクリプト』でた くさん Hubot スクリプトをつくったぼうず 『1 日 1 Hubot スクリプト』は一長一短、学 ぶことは多い。

Slide 41

Slide 41 text

ここまでで 10 分 (予定) 。

Slide 42

Slide 42 text

2. だれだって できないことが あるんだよ

Slide 43

Slide 43 text

Q. Hubot スクリプトどれくらいつくってます か?

Slide 44

Slide 44 text

「Hubot を知ってる前提で募集してま す」(一部、省略) 「知ってる」って何だ? つくってないやつが来るわけない みんな現実逃避するレベルでつくってる (確 信)

Slide 45

Slide 45 text

つくるうちに思うこと。あらためて共有した い。

Slide 46

Slide 46 text

Hubot にできること Hubot にできないこと

Slide 47

Slide 47 text

Hubot にできること →だいたいできる。

Slide 48

Slide 48 text

Node.js でできること npm パッケージの利用 API 呼び出し 画像・グラフ生成 任意のプロセスの実行

Slide 49

Slide 49 text

もうちょっと、現実的に……

Slide 50

Slide 50 text

チャットメッセージをコマンド化 チャットの機能を拡張 個人のコマンドを、チャットのコマンドに コマンド結果など、チームの情報共有 → たぶん ChatOps

Slide 51

Slide 51 text

Hubot にできないこと → UI 改善 ( チャットに依存 )

Slide 52

Slide 52 text

たとえば、select-box のような選択肢をだす → CLI にも劣る

Slide 53

Slide 53 text

やめるべきだと思うこと

Slide 54

Slide 54 text

複雑な Hubot スクリプト できるからやる? やめといたほうが…… → API 呼び出しなど、トリガーに留めるべき

Slide 55

Slide 55 text

理由 1. その複雑さに対して何のサポートもない 2. 別アプリにして、それを呼ぶ方がシンプル あくまで私見

Slide 56

Slide 56 text

ここまで来て、すこし考える Hubot がすることはチャットの部分的な機能 拡張

Slide 57

Slide 57 text

ChatOps に Hubot (BOT) は必要か? → たぶん、必要ない → チャットがその機能を持てば? (特定チャットに依存)

Slide 58

Slide 58 text

そもそもチャットの機能弱くね?メッセージ の流量への対応がいまいちだよね。通知と会 話との混在による混沌。そこに新たなコマン ドが!h u b o t p u g b o m b リアルタイムなやり とりを回避するためにチャットを入れたが、 実際にはリアルタイムでしか機能しなくなる レベルでログ流れていくよね。mention なし には追えないチャンネルとか笑える。機能と して、流れていく情報とストックしておく情 報とをうまく扱えないチャット多くね?スタ ー?あれで大丈夫なの?あと、チャンネル。 部屋。何あれ? IRC から進歩してないじゃ ん。もっと情報整理の手段ないの?部屋って

Slide 59

Slide 59 text

長くなるので割愛

Slide 60

Slide 60 text

2. のまとめ Hubot はだいたいのことはできる Hubot は UI 改善できない、チャットに依存 する Hubot はチャットを部分的に良くする できるからやる? BOT でやる必要がある? ChatOps に Hubot は要るのか? そもそもチャットってどうなの?

Slide 61

Slide 61 text

話が雑に。既に時間切れ (予想)

Slide 62

Slide 62 text

3. もういいよ あきらめたって いいんだよ

Slide 63

Slide 63 text

Q. Hubot を導入したい(けどできてない)?

Slide 64

Slide 64 text

想像するよね…… みんなでチャットして、 そこに Hubot が居て、 デプロイとかもできて……

Slide 65

Slide 65 text

何その、 その幸せな家庭とゴールデンレトリーバーな 幻想

Slide 66

Slide 66 text

もういいよ あきらめたって いいんだよ

Slide 67

Slide 67 text

現実みろよ

Slide 68

Slide 68 text

現実はどうせ ひとりで HipChat ひとりで Typetalk ひとりで Slack

Slide 69

Slide 69 text

ひとりチャットで検証→大満足 そんな Qiita 記事もう要らないんで。

Slide 70

Slide 70 text

好きなことで、生きていく のは勝手だけど、 そのチャットにはお前と Hubot しかいないぜ

Slide 71

Slide 71 text

やめよう

Slide 72

Slide 72 text

もうチャット使うのやめよう

Slide 73

Slide 73 text

そのためにぼくはつくった

Slide 74

Slide 74 text

ローカル Hubot

Slide 75

Slide 75 text

おひとり様 Hubot

Slide 76

Slide 76 text

hubot-b アダプター bouzuya/hubot-b HTTP でメッセージを待ち受ける JSON API (≒簡易チャット内蔵)

Slide 77

Slide 77 text

atom-hubot-b パッケージ bouzuya/atom-hubot-b Atom Editor から Hubot (with hubot-b) と通信

Slide 78

Slide 78 text

ローカルで、 エディタから Hubot 。

Slide 79

Slide 79 text

No content

Slide 80

Slide 80 text

No content

Slide 81

Slide 81 text

いいじゃん、これで

Slide 82

Slide 82 text

Hubot = Your Company BOT それ誰が決めたんだよ (公式です) Hubot = Your BOT 個人のための Hubot 。 オレのための、私のための Hubot 。

Slide 83

Slide 83 text

あきらめよう ChatOps

Slide 84

Slide 84 text

あんなのどうせバズワード

Slide 85

Slide 85 text

野良 Hubot で何が悪い! 野良 Hubot で何が悪い!

Slide 86

Slide 86 text

キミだけの Hubot を つくろう!!!!!

Slide 87

Slide 87 text

おしまい

Slide 88

Slide 88 text

補足 1 日 1 Hubot スクリプトのせいで hubot-b / atom-hubot-b は機能がありません。 PR 歓迎