推し活としてのrails new/oshikatsu_ha_iizo
by
sakahukamaki
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
推し活としての`rails new .` Kaigi on Rails 2024 sakahukamaki / kotatsu
Slide 2
Slide 2 text
自己紹介 ● 家に猫が三匹いる ● Rails10年生 ● 同人誌を書くタイプのオタク
Slide 3
Slide 3 text
このトークで持って帰れるもの ● オタクへの何らかの気持ち ● 知らない世界の断片 ● 軽率なオタクという存在の知見
Slide 4
Slide 4 text
今日話すこと、話さないこと ● 話す ○ オタクが何をしたか ○ 頑張らない開発体制 ● 話さない ○ rails new . 以上のRailsのはなし
Slide 5
Slide 5 text
前提知識
Slide 6
Slide 6 text
推し活とは ● 家に猫が三匹いる ● Rails10年生 ● 同人誌を書くタイプのオタク https://kotobank.jp/word/推し活
Slide 7
Slide 7 text
今日の推し 魔界の一般人 シャレトン https://youtube.com/@shareton_sha
Slide 8
Slide 8 text
活動スタイル ● いわゆる動画勢 ● 匿名のお手紙とのコミュニケーション(大喜利) ● オリジナルショートドラマ
Slide 9
Slide 9 text
普段の姿 なかみ https://x.com/sharepos_ hokori/status/15775943 35524450304
Slide 10
Slide 10 text
野球の話とか https://x.com/sharepos_ hokori/status/14033204 18723762179
Slide 11
Slide 11 text
週末は競馬予想 なかみ https://x.com/sharepos_ hokori/status/16398708 76253585408
Slide 12
Slide 12 text
恋愛や人生相談もある なかみ https://x.com/sharepos_ hokori/status/12917378 73180315648
Slide 13
Slide 13 text
その他の活動軸 ● オリジナルショートドラマ 通称:本編 ● 企画から発生した架空のVTuberの設定を追加募 集し、エイプリルフールには「存在するVTuber として活動する姿」も披露
Slide 14
Slide 14 text
オタクと距離が近い ● オタクの発案が取り込まれる ● 人生相談が拾われたりする
Slide 15
Slide 15 text
オタクと距離が近い ● オタクの発案が取り込まれる ● 人生相談が拾われたりする うれしい
Slide 16
Slide 16 text
きょりちか 匿名だからこそ成り立つ大喜利、コミュニケーション マシュマロで行われていた
Slide 17
Slide 17 text
サービス Ruby on Railsと Pythonで出来た Webサービス https://marshmallow-qa.com
Slide 18
Slide 18 text
マシュマロ #とは ● 匿名のメッセージ ● 受け手に優しい機能 ○ 攻撃的なメッセージを弾く ○ よくない言葉を伏字にしてくれる ○ Pythonの実装はこのへん ● 推しのコンテンツに深く関わるサービス
Slide 19
Slide 19 text
事件 ある日マシュマロに事件
Slide 20
Slide 20 text
事件 ある日マシュマロに事件 マシュマロ: 認証ユーザを優遇します ログイン必須にします
Slide 21
Slide 21 text
こまる… 匿名だけど不平等になった https://x.com/sharepos_hokori/status/1664066921707499520
Slide 22
Slide 22 text
困るね…… オタク間に差があると悲しいのは推しも同じ https://x.com/sharepos_ hokori/status/16641188 07580012549
Slide 23
Slide 23 text
マシュマロでは要件を満たせなくなった https://x.com/sharepos _hokori/status/166425 5928831729664 引越先探しの旅へ
Slide 24
Slide 24 text
一長一短 ほめて箱 × 伏せ字オープン https://x.com/sharepos _hokori/status/166428 1621493878837
Slide 25
Slide 25 text
一長一短 お題箱 × 画像化 https://x.com/sharepos_hokori/status/1664246739979882497
Slide 26
Slide 26 text
一長一短 wavebox × 画像化 https://x.com/sharepos_ hokori/status/16648190 30308577280
Slide 27
Slide 27 text
一長一短 質問箱 × 広告デカすぎ × 無差別お手紙が 届く https://x.com/sharepos_hokori/status/1664194206745899009
Slide 28
Slide 28 text
一長一短 Google Form × 画像化 × 利便性 https://x.com/sharepos_hokori/status/1664256673652035584
Slide 29
Slide 29 text
一長一短 Zabuu × 長文 × 安定性 https://x.com/sharepos_ hokori/status/16644769 73836668929
Slide 30
Slide 30 text
推し、落ち着かない ● 長文が届く ● ワンクリックで画像にしたい ● 攻撃的な手紙は弾きたい 上記の要件にフィットするサービスがない
Slide 31
Slide 31 text
大変そう 推しが大変そうだとオタクはつらい
Slide 32
Slide 32 text
青天の霹靂 https://x.com/sharepos_hokori/status/1665196149136056320
Slide 33
Slide 33 text
エンジニアワイ、気付く ワイ、つくれるじゃん
Slide 34
Slide 34 text
そう、Ruby on Railsならね ● 必要な機能はお手紙を送るだけ ● 長文はDBでどうとでも ● 画像出力もなんとでもなるやろ
Slide 35
Slide 35 text
聞いてみよ 「作っていい?」 「作るって何?」 「じゃあ作るね」 「作るって何??」 https://x.com/sharepos_ hokori/status/16655755 20510287873
Slide 36
Slide 36 text
方針が決まった ● あとはやるだけ ● 仕事の合間にさっさと実装
Slide 37
Slide 37 text
作るぞ
Slide 38
Slide 38 text
git init ●
Slide 39
Slide 39 text
タイトル回収 ●
Slide 40
Slide 40 text
そうして出来上がったのがこれ
Slide 41
Slide 41 text
とても平成 ● 最低限の機能だけ
Slide 42
Slide 42 text
こころいき ● 最低限の機能だけ ● 出来ない事にこだわるとぽしゃる ● とにかく出す
Slide 43
Slide 43 text
何はともあれリリース 👏
Slide 44
Slide 44 text
具体的に何したの
Slide 45
Slide 45 text
時系列 ● 2023/6/5 `git init`, `rals new .` ● 2023/6/6 開発環境整備(Docker回り) ● 2023/6/8 Letterモデル爆誕 ● 2023/6/9 管理画面、ロゴ爆誕 ● 2023/6/10 お手紙の画像化を実装して本番投下
Slide 46
Slide 46 text
はやさ ● 構想からリリースまで5日 ● Ruby on Railsはすごい
Slide 47
Slide 47 text
作ったもの ● LettersController ○ new, create ● Admin::LettersController ○ index, show
Slide 48
Slide 48 text
作らなかったもの ● ユーザー管理
Slide 49
Slide 49 text
ユーザー管理を作らない ● どうせ管理画面を見るのは推しだけ ● 推し1人のためにUserモデル/テーブルを設計 ○ オタク全員がアカウントを作るとかもある?
Slide 50
Slide 50 text
ユーザー管理を作らない? ● どうせ管理画面を見るのは推しだけ ● 推し1人のためにUserモデル/テーブルを設計 ○ オタク全員がアカウントを作るとかもある? ○ 様々な要件を考えるのだるい
Slide 51
Slide 51 text
推しのログインはざっくりと ● BASIC認証でエイってやってバーン ● authenticate_or_request_with_http_basic ○ usernameとpasswordは環境変数に埋めた
Slide 52
Slide 52 text
これも作らなかった ● マシュマロにある伏字機能 ○ 「下ネタの為に課金したいわけじゃない」とい う発言から不要と判断
Slide 53
Slide 53 text
なかまあつめ
Slide 54
Slide 54 text
あの画面をもう一度
Slide 55
Slide 55 text
見た目、平成すぎ…? ● 幸いなことに ● オタクが なかまに なりたそうに こちらを うかがっている ○ 気がした
Slide 56
Slide 56 text
ツイートしてみた ● デザインもお絵かきもできん!
Slide 57
Slide 57 text
🐟🐟🐟 ● オタク釣れた ● やっぱり居る https://x.com/sharepos_hokori/status/1666773616602787846
Slide 58
Slide 58 text
どう集めるか ● 求人を出す ● 「こちら側」の人間をあぶり出す ● やる気のある人間を引っかける
Slide 59
Slide 59 text
どこに集めるか ● 元々Discordに推しのファン鯖 (オタクの集まり)があった ● 同じプラットフォームを使う形でひとあつめ
Slide 60
Slide 60 text
求人掲載 ● 探してみた ● ページのヘッダでひとさがし Ruby、Rails、Docker、Git、HTML、CSS、UIデザイン、アイコン制 作、その他もろもろ心当たりある人は@shareton_postに連絡くださ い。
Slide 61
Slide 61 text
炙り出し <●><●> <●><●> <●><●> こっちを見たな? <●><●> <●><●> <●><●> 待ってたよ! 【流出するな】開発鯖のリンク: https://xxxxxxxxxxxx【お前ら外秘】
Slide 62
Slide 62 text
紹介、突撃 ● 推し経由で紹介されたユーザーにDM ● 運営アカウントにDMしてきたユーザーを招待
Slide 63
Slide 63 text
ロゴもでてきた ● とにかく手が早い ● オタクすごい
Slide 64
Slide 64 text
OGPも出てきた ● アイデアと仕上げは別人(感謝)
Slide 65
Slide 65 text
ひとあつめできた ● 仕様の相談が出来る ● なんかラフが飛んでくる ● なんか実装が飛んでくる ● めっちゃほめてくれる
Slide 66
Slide 66 text
いまの開発鯖 ● 絶対に返事してくれる人誰かひとり ● 基本的に3人以上の反応がある ● 来るもの拒まず去るもの気づかず
Slide 67
Slide 67 text
ひと あつまる すごい 👏
Slide 68
Slide 68 text
Ruby on Railsってすごい ● 何も考えずにサービスが作れた ● リリースまでの障壁がない ○ SaaSがあってうれしい ■ さっくりデプロイ
Slide 69
Slide 69 text
爆速リリースを支えたSaaS ● ユーザー管理を頑張らない人間は インフラを頑張る気がない ● 思い出したのは古のRuby PaaS「MOGOK」 ○ https://www.iij.ad.jp/dev/tech/activities/mogok/ ○ MOGOKは、もう……
Slide 70
Slide 70 text
Heroku VS ● よくある選択肢はHeroku ● 強く選ぶ理由もなければ強く選ばない理由もない ○ Rails Girlsとかコミュニティ活動なら選ぶ
Slide 71
Slide 71 text
国産でRailsが動くと嬉しい ● 探してみたらあった ● ロリポップ!マネージドクラウド by GMOペパボ ○ https://mc.lolipop.jp/ ● サポートも日本語だし心強い ● 英語頑張らなくてよい ○ とにかく運用で頑張りたくない
Slide 72
Slide 72 text
頑張らないインフラ 完成 ● ロリポップ!マネージドクラウドのDBがMySQL ● Gemfileに `gem "mysql2", "~> 0.5"`と追記 ● ~完~
Slide 73
Slide 73 text
インフラ やらないこと ● 監視 ● バックアップ
Slide 74
Slide 74 text
インフラ やらないこと ● 監視 ⇒なんかあったらDMをくれ ● バックアップ ⇒サービス移行もお祭りにしたオタクなら DBがぶっ飛んでも祭りになる説 あると思います ■ (規約にも「祈れ」って書いてる)
Slide 75
Slide 75 text
維持費 ● オタク金払いがち ● 自費 ● 実際各種サブスクとそう変わらん値段 ○ 1400円くらい/月 ● (同人誌より安い)
Slide 76
Slide 76 text
無事運用開始 ● 推し、オタクの様々な方向から要望が発生する
Slide 77
Slide 77 text
推しから要望もろた ● ワンクリックで画像にしたい ● お気に入りほしい ● ブロックしたい
Slide 78
Slide 78 text
推しから要望もろた ● ワンクリックで画像にしたい ⇒都度ダウンロード→クリップボード ● お気に入りほしい ⇒is_favorite カラムを追加 ● ブロックしたい ⇒rackでごにょごにょ
Slide 79
Slide 79 text
開発鯖、すごい アーと思ってた部 分を実装してくれ るひとがいる
Slide 80
Slide 80 text
開発鯖、すごい(2) 概念推しカラーリングのデザインが出てきた
Slide 81
Slide 81 text
開発鯖で考えた ● 見た目を推しに合わせよう ● コンテンツに合わせたタグを付けよう ⇒作った
Slide 82
Slide 82 text
出てきたバグ ● 改行が反映されない ○ safe_joinのやつじゃん、直します ● 絵文字が投稿できない ○ DBの設定見直してutf8からutf8mb64へ ○ 有識者のDMで「アッDBの設定見てないや」と思 い出せた
Slide 83
Slide 83 text
オタクの要望 ● プレビューしたい ● (推しが見てるらしい)手紙の総数を俺らも見たい ⇒作った
Slide 84
Slide 84 text
オタクの反応を見た ● バグる→推しに報告する→推しからDMが来る ● 要望がある→推しに連絡する→推しから以下略 ● 推しに迷惑のかかる流れが生まれていた ● (大体オタク隠れるのでエゴサも機能しない)
Slide 85
Slide 85 text
オタク、隠れがち ● 推しとのやりとりも匿名が喜ばれるオタク ● よくよく考えたらオタクが運営アカウントに凸る訳 がない ● 運営宛の手紙も受け取ろう ⇒目安箱を作る
Slide 86
Slide 86 text
目安箱の通知 ● Feedback#save後にDiscordのincoming webhook を叩く ○
Slide 87
Slide 87 text
オタクの要望 ● 金を払わせろと言われた ○ オタク金払いがち ● OFUSEにて送金受付対応 ○ https://ofuse.me/ ● 匿名で送金されがち ○ (返信したいのでログインして送って欲しい)
Slide 88
Slide 88 text
お金もらったので ● 定期的に収支を公開 ○ 公開する度に何故か残高が増える謎 ■ オタク金払いがち ○ 元気な月だけ公開している ■ 兎にも角にもがんばらない
Slide 89
Slide 89 text
反響
Slide 90
Slide 90 text
朗報、「【朗報】」 ● 推しの喜びは オタクの喜び https://x.com/shareton _sha/status/166745197 4365896705
Slide 91
Slide 91 text
プレゼントにもなった ● 意図せぬプレゼントに https://x.com/sharepos_hokori/status/1667485783467651072
Slide 92
Slide 92 text
「教室の隅で埃食ってた」は内輪ネタ https://x.com/sharepos_hokori/status/1665691932918415360
Slide 93
Slide 93 text
運用体制
Slide 94
Slide 94 text
あるもの ● サービス ● 開発鯖 ● 規約 ● 祈り
Slide 95
Slide 95 text
ないもの ● ドメイン ● 監視・バックアップ ● CI/CD ● テストコード ● やる気
Slide 96
Slide 96 text
とにかくがんばらない ● ゆるくやる ● 息切れしないで運用する ● 終わらせないのが大事
Slide 97
Slide 97 text
ちょっとしたオタクのがんばりで 推しの平穏が保たれた🎉
Slide 98
Slide 98 text
令和ちゃんにキレてるし なかみ https://x.com/sharepos_ hokori/status/18414938 66509467691
Slide 99
Slide 99 text
野球の話もしてるし https://x.com/sharepos_ hokori/status/18369392 51369578676
Slide 100
Slide 100 text
🏇の話もしてる https://x.com/sharepos_ hokori/status/18476620 54758580691
Slide 101
Slide 101 text
今後やりたいこと ● もらったイラストのギャラリーページ ● お手紙の柄を内容に合わせて変更 ○ フッターに馬とか野球とか ● キリ番踏み逃げを許さないイベント
Slide 102
Slide 102 text
やらかした感想
Slide 103
Slide 103 text
エンジニアとしてどう? ● 平日にRailsを書いている知識が役に立って嬉しい
Slide 104
Slide 104 text
オタクとしてどう? ● 平日にRailsを書いている知識が「推しのために」役 に立って嬉しい
Slide 105
Slide 105 text
Railsアプリ ● 日々の仕事より楽なアプリだし、簡単に作って雑に メンテできててよい ○ 実務経験あっての「簡単」 ● 遊び場にしようかと思ってたけど、Wasmも ViewComponentもHotwireもなーんにもしてない
Slide 106
Slide 106 text
幸運 ● 作ったはいいものの人が集まらないサービスはある ● 最初からターゲットが居て公認で使ってもらえたの はラッキー
Slide 107
Slide 107 text
アレなおきもち ● 休日にコード書いてる人に対して勝手にコンプ レックスがあった ● 自分の同人趣味みたいなもんだと分かったのでど うでもよくなった ○ 休日にコードを書くのは、休日にコードを書くということ ○ 同人誌をつくるのは、休日に原稿を書くということ
Slide 108
Slide 108 text
楽しんでやる ● 趣味に仕事が役立つこともある ● 休日に仕事を趣味にする必要はない ○ やらなくても死なない ● 推しの役に立てると嬉しい
Slide 109
Slide 109 text
いかがでしたか ● オタクへの何らかの気持ちは芽生えましたか ● 知らない世界は見えましたか ● オタク金払いがち、覚えましたか
Slide 110
Slide 110 text
おしまい 👋