推し活としてのrails new/oshikatsu_ha_iizo
by
sakahukamaki
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
推し活としての`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
おしまい 👋