Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
esaが好きで作ったツールたち 2019/05/10 Fri. @FromAtom esa 生誕5周年記念パーティー(\( ⁰⊖⁰)/)
Slide 2
Slide 2 text
@FromAtom • 2014年: 株式会社はてな インターン → アルバイト ‣ はてなブログ リアルタイムプレビュー / はてブコメントの埋め込みコード • 2015年: ピクシブ株式会社 ‣ iOS アプリエンジニア ‣ pixiv Sketch / pixiv Sketch LIVE / pixivコミック / Pawoo ‣ 弊社ブログ(pixiv inside)編集員 ‣ pixiv TECH SALON運営
Slide 3
Slide 3 text
IUUQTEPDTFTBJPQPTUT
Slide 4
Slide 4 text
2015年からesaを使い続けている
Slide 5
Slide 5 text
大好きなツールのひとつ
Slide 6
Slide 6 text
好きなツールは改造したくなる
Slide 7
Slide 7 text
Yakitori 作ったツール その1
Slide 8
Slide 8 text
弊社esa事情 週に数十本の記事がShip It!されてSlackに通知される 読みきれん!!!
Slide 9
Slide 9 text
はてブのホッテントリがあればよくね?
Slide 10
Slide 10 text
はてなインターンで いろんなアルゴリズム教わったな
Slide 11
Slide 11 text
じゃあ作るか
Slide 12
Slide 12 text
できたわ
Slide 13
Slide 13 text
Slackにも通知されます
Slide 14
Slide 14 text
3つのアプリで構成 Kushi Yakitori Negima esaから記事を取得し、記事の火力を計算して保存する。 ただのViewer。Yakitoriが計算した情報を整形して表示する。 定期的にSlackに通知する。
Slide 15
Slide 15 text
火力 = (p - 1) (t + 1) G t: 投稿からの経過時間[h] G: 重み付け係数(1.8ぐらいがちょうどよい) p = star_count×1.0 + comment_count×1.2 + watch_count×0.2 ※Hacker NewsͰΘΕ͍ͯΔΞϧΰϦζϜΒ͍͠Ͱ͢
Slide 16
Slide 16 text
IUUQTHJUIVCDPN'SPN"UPN:BLJUPSJ
Slide 17
Slide 17 text
作る時に気をつけたこと • ランキングを作らない、ランキングに思わせない ‣ 記事に優劣などない ‣ 『今、盛り上がっている』だけがわかるように ‣ 表示画面で順位っぽい数字を置かない ‣ 「火力」という不思議ワーディングをする ‣ Slackへの通知は火力の高い記事の中からランダムで選ばれる
Slide 18
Slide 18 text
Kujaku 作ったツール その2 Danny Perez Photography CC 2.0 https://www.flickr.com/photos/da100fotos/14919775822
Slide 19
Slide 19 text
弊社esa事情 esaのURLがSlackに貼られる事例多数 展開されん!!!
Slide 20
Slide 20 text
URLが展開されないの、耐えられなくね?
Slide 21
Slide 21 text
じゃあ作るか
Slide 22
Slide 22 text
できたわ
Slide 23
Slide 23 text
Slack Appを利用 • Unfurling links in messages ってのがある ‣ 特定ドメインのURLが投稿されたらイベントが発火 ‣ Slack Appで指定したEndpointにリクエストが飛ぶ ‣ なんでも展開できるぞ!!!
Slide 24
Slide 24 text
処理の流れ “pixiv.esa.io" ドメインのesaのURLがSlackに貼られる イベントが発火してHeroku上のKujakuにリクエストが飛ぶ Kujaku上でesaのAPI叩いて、展開に必要な情報を収集 必要な情報を返すとSlackがいい感じに展開してくれる
Slide 25
Slide 25 text
IUUQTHJUIVCDPN'SPN"UPN,VKBLV
Slide 26
Slide 26 text
esa さん これからもよろしくね!