Upgrade to Pro — share decks privately, control downloads, hide ads and more …

🎉 esa 生誕5周年記念パーティー(\( ⁰⊖⁰)/) 🎉 / esa the 5th anniversary

FromAtom
May 10, 2019
3.6k

🎉 esa 生誕5周年記念パーティー(\( ⁰⊖⁰)/) 🎉 / esa the 5th anniversary

esa 生誕5周年記念パーティー(\( ⁰⊖⁰)/) でLTをした『esaが好きで作ったツールたち』の発表資料です。

FromAtom

May 10, 2019
Tweet

More Decks by FromAtom

Transcript

  1. esaが好きで作ったツールたち
    2019/05/10 Fri.
    @FromAtom
    esa 生誕5周年記念パーティー(\( ⁰⊖⁰)/)

    View Slide

  2. @FromAtom
    • 2014年: 株式会社はてな インターン → アルバイト
    ‣ はてなブログ リアルタイムプレビュー / はてブコメントの埋め込みコード
    • 2015年: ピクシブ株式会社
    ‣ iOS アプリエンジニア
    ‣ pixiv Sketch / pixiv Sketch LIVE / pixivコミック / Pawoo
    ‣ 弊社ブログ(pixiv inside)編集員
    ‣ pixiv TECH SALON運営

    View Slide

  3. IUUQTEPDTFTBJPQPTUT

    View Slide

  4. 2015年からesaを使い続けている

    View Slide

  5. 大好きなツールのひとつ

    View Slide

  6. 好きなツールは改造したくなる

    View Slide

  7. Yakitori
    作ったツール その1

    View Slide

  8. 弊社esa事情
    週に数十本の記事がShip It!されてSlackに通知される
    読みきれん!!!

    View Slide

  9. はてブのホッテントリがあればよくね?

    View Slide

  10. はてなインターンで

    いろんなアルゴリズム教わったな

    View Slide

  11. じゃあ作るか

    View Slide

  12. できたわ

    View Slide

  13. Slackにも通知されます

    View Slide

  14. 3つのアプリで構成
    Kushi
    Yakitori
    Negima
    esaから記事を取得し、記事の火力を計算して保存する。
    ただのViewer。Yakitoriが計算した情報を整形して表示する。
    定期的にSlackに通知する。

    View Slide

  15. 火力 =
    (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Ͱ࢖ΘΕ͍ͯΔΞϧΰϦζϜΒ͍͠Ͱ͢

    View Slide

  16. IUUQTHJUIVCDPN'SPN"UPN:BLJUPSJ

    View Slide

  17. 作る時に気をつけたこと
    • ランキングを作らない、ランキングに思わせない
    ‣ 記事に優劣などない
    ‣ 『今、盛り上がっている』だけがわかるように
    ‣ 表示画面で順位っぽい数字を置かない
    ‣ 「火力」という不思議ワーディングをする
    ‣ Slackへの通知は火力の高い記事の中からランダムで選ばれる

    View Slide

  18. Kujaku
    作ったツール その2
    Danny Perez Photography CC 2.0 https://www.flickr.com/photos/da100fotos/14919775822

    View Slide

  19. 弊社esa事情
    esaのURLがSlackに貼られる事例多数
    展開されん!!!

    View Slide

  20. URLが展開されないの、耐えられなくね?

    View Slide

  21. じゃあ作るか

    View Slide

  22. できたわ

    View Slide

  23. Slack Appを利用
    • Unfurling links in messages ってのがある
    ‣ 特定ドメインのURLが投稿されたらイベントが発火
    ‣ Slack Appで指定したEndpointにリクエストが飛ぶ
    ‣ なんでも展開できるぞ!!!

    View Slide

  24. 処理の流れ
    “pixiv.esa.io" ドメインのesaのURLがSlackに貼られる
    イベントが発火してHeroku上のKujakuにリクエストが飛ぶ
    Kujaku上でesaのAPI叩いて、展開に必要な情報を収集
    必要な情報を返すとSlackがいい感じに展開してくれる

    View Slide

  25. IUUQTHJUIVCDPN'SPN"UPN,VKBLV

    View Slide

  26. esa さん これからもよろしくね!

    View Slide