$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
推し活としてのrails new/oshikatsu_ha_iizo
Search
sakahukamaki
October 25, 2024
Programming
3
2.9k
推し活としてのrails new/oshikatsu_ha_iizo
in Kaigi on Rails 2024
sakahukamaki
October 25, 2024
Tweet
Share
More Decks by sakahukamaki
See All by sakahukamaki
自作しないゆるふわこだわりキーボード生活/keeb_at_matsue
sakahukamaki
0
53
Other Decks in Programming
See All in Programming
.NET 9アプリをCGIとして レンタルサーバーで動かす
mayuki
1
750
ペアーズにおけるAmazon Bedrockを⽤いた障害対応⽀援 ⽣成AIツールの導⼊事例 @ 20241115配信AWSウェビナー登壇
fukubaka0825
6
2.3k
Flutterを言い訳にしない!アプリの使い心地改善テクニック5選🔥
kno3a87
3
380
テスト自動化失敗から再挑戦しチームにオーナーシップを委譲した話/STAC2024 macho
ma_cho29
0
420
Develop iOS apps with Neovim / vimconf_2024
uhooi
1
290
Jakarta EE meets AI
ivargrimstad
0
740
カンファレンスでLTしました / kashiwarb5
nhayato
0
110
Welcome JSConf.jp 2024
yosuke_furukawa
PRO
0
3k
急成長期の品質とスピードを両立するフロントエンド技術基盤
soarteclab
0
590
最新TCAキャッチアップ
0si43
0
250
DevFest Tokyo 2025 - Flutter のアプリアーキテクチャ現在地点
wasabeef
3
460
複雑な仕様に立ち向かうアーキテクチャ
myohei
0
110
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.2k
A designer walks into a library…
pauljervisheath
204
24k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
A better future with KSS
kneath
238
17k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
For a Future-Friendly Web
brad_frost
175
9.4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Optimizing for Happiness
mojombo
376
70k
Rails Girls Zürich Keynote
gr2m
94
13k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Transcript
推し活としての`rails new .` Kaigi on Rails 2024 sakahukamaki / kotatsu
自己紹介 • 家に猫が三匹いる • Rails10年生 • 同人誌を書くタイプのオタク
このトークで持って帰れるもの • オタクへの何らかの気持ち • 知らない世界の断片 • 軽率なオタクという存在の知見
今日話すこと、話さないこと • 話す ◦ オタクが何をしたか ◦ 頑張らない開発体制 • 話さない ◦
rails new . 以上のRailsのはなし
前提知識
推し活とは • 家に猫が三匹いる • Rails10年生 • 同人誌を書くタイプのオタク https://kotobank.jp/word/推し活
今日の推し 魔界の一般人 シャレトン https://youtube.com/@shareton_sha
活動スタイル • いわゆる動画勢 • 匿名のお手紙とのコミュニケーション(大喜利) • オリジナルショートドラマ
普段の姿 なかみ https://x.com/sharepos_ hokori/status/15775943 35524450304
野球の話とか https://x.com/sharepos_ hokori/status/14033204 18723762179
週末は競馬予想 なかみ https://x.com/sharepos_ hokori/status/16398708 76253585408
恋愛や人生相談もある なかみ https://x.com/sharepos_ hokori/status/12917378 73180315648
その他の活動軸 • オリジナルショートドラマ 通称:本編 • 企画から発生した架空のVTuberの設定を追加募 集し、エイプリルフールには「存在するVTuber として活動する姿」も披露
オタクと距離が近い • オタクの発案が取り込まれる • 人生相談が拾われたりする
オタクと距離が近い • オタクの発案が取り込まれる • 人生相談が拾われたりする うれしい
きょりちか 匿名だからこそ成り立つ大喜利、コミュニケーション マシュマロで行われていた
サービス Ruby on Railsと Pythonで出来た Webサービス https://marshmallow-qa.com
マシュマロ #とは • 匿名のメッセージ • 受け手に優しい機能 ◦ 攻撃的なメッセージを弾く ◦ よくない言葉を伏字にしてくれる
◦ Pythonの実装はこのへん • 推しのコンテンツに深く関わるサービス
事件 ある日マシュマロに事件
事件 ある日マシュマロに事件 マシュマロ: 認証ユーザを優遇します ログイン必須にします
こまる… 匿名だけど不平等になった https://x.com/sharepos_hokori/status/1664066921707499520
困るね…… オタク間に差があると悲しいのは推しも同じ https://x.com/sharepos_ hokori/status/16641188 07580012549
マシュマロでは要件を満たせなくなった https://x.com/sharepos _hokori/status/166425 5928831729664 引越先探しの旅へ
一長一短 ほめて箱 × 伏せ字オープン https://x.com/sharepos _hokori/status/166428 1621493878837
一長一短 お題箱 × 画像化 https://x.com/sharepos_hokori/status/1664246739979882497
一長一短 wavebox × 画像化 https://x.com/sharepos_ hokori/status/16648190 30308577280
一長一短 質問箱 × 広告デカすぎ × 無差別お手紙が 届く https://x.com/sharepos_hokori/status/1664194206745899009
一長一短 Google Form × 画像化 × 利便性 https://x.com/sharepos_hokori/status/1664256673652035584
一長一短 Zabuu × 長文 × 安定性 https://x.com/sharepos_ hokori/status/16644769 73836668929
推し、落ち着かない • 長文が届く • ワンクリックで画像にしたい • 攻撃的な手紙は弾きたい 上記の要件にフィットするサービスがない
大変そう 推しが大変そうだとオタクはつらい
青天の霹靂 https://x.com/sharepos_hokori/status/1665196149136056320
エンジニアワイ、気付く ワイ、つくれるじゃん
そう、Ruby on Railsならね • 必要な機能はお手紙を送るだけ • 長文はDBでどうとでも • 画像出力もなんとでもなるやろ
聞いてみよ 「作っていい?」 「作るって何?」 「じゃあ作るね」 「作るって何??」 https://x.com/sharepos_ hokori/status/16655755 20510287873
方針が決まった • あとはやるだけ • 仕事の合間にさっさと実装
作るぞ
git init •
タイトル回収 •
そうして出来上がったのがこれ
とても平成 • 最低限の機能だけ
こころいき • 最低限の機能だけ • 出来ない事にこだわるとぽしゃる • とにかく出す
何はともあれリリース 👏
具体的に何したの
時系列 • 2023/6/5 `git init`, `rals new .` • 2023/6/6
開発環境整備(Docker回り) • 2023/6/8 Letterモデル爆誕 • 2023/6/9 管理画面、ロゴ爆誕 • 2023/6/10 お手紙の画像化を実装して本番投下
はやさ • 構想からリリースまで5日 • Ruby on Railsはすごい
作ったもの • LettersController ◦ new, create • Admin::LettersController ◦ index,
show
作らなかったもの • ユーザー管理
ユーザー管理を作らない • どうせ管理画面を見るのは推しだけ • 推し1人のためにUserモデル/テーブルを設計 ◦ オタク全員がアカウントを作るとかもある?
ユーザー管理を作らない? • どうせ管理画面を見るのは推しだけ • 推し1人のためにUserモデル/テーブルを設計 ◦ オタク全員がアカウントを作るとかもある? ◦ 様々な要件を考えるのだるい
推しのログインはざっくりと • BASIC認証でエイってやってバーン • authenticate_or_request_with_http_basic ◦ usernameとpasswordは環境変数に埋めた
これも作らなかった • マシュマロにある伏字機能 ◦ 「下ネタの為に課金したいわけじゃない」とい う発言から不要と判断
なかまあつめ
あの画面をもう一度
見た目、平成すぎ…? • 幸いなことに • オタクが なかまに なりたそうに こちらを うかがっている ◦ 気がした
ツイートしてみた • デザインもお絵かきもできん!
🐟🐟🐟 • オタク釣れた • やっぱり居る https://x.com/sharepos_hokori/status/1666773616602787846
どう集めるか • 求人を出す • 「こちら側」の人間をあぶり出す • やる気のある人間を引っかける
どこに集めるか • 元々Discordに推しのファン鯖 (オタクの集まり)があった • 同じプラットフォームを使う形でひとあつめ
求人掲載 • 探してみた • ページのヘッダでひとさがし Ruby、Rails、Docker、Git、HTML、CSS、UIデザイン、アイコン制 作、その他もろもろ心当たりある人は@shareton_postに連絡くださ い。
炙り出し <•><•> <•><•> <•><•> こっちを見たな? <•><•> <•><•> <•><•> 待ってたよ! 【流出するな】開発鯖のリンク:
https://xxxxxxxxxxxx【お前ら外秘】
紹介、突撃 • 推し経由で紹介されたユーザーにDM • 運営アカウントにDMしてきたユーザーを招待
ロゴもでてきた • とにかく手が早い • オタクすごい
OGPも出てきた • アイデアと仕上げは別人(感謝)
ひとあつめできた • 仕様の相談が出来る • なんかラフが飛んでくる • なんか実装が飛んでくる • めっちゃほめてくれる
いまの開発鯖 • 絶対に返事してくれる人誰かひとり • 基本的に3人以上の反応がある • 来るもの拒まず去るもの気づかず
ひと あつまる すごい 👏
Ruby on Railsってすごい • 何も考えずにサービスが作れた • リリースまでの障壁がない ◦ SaaSがあってうれしい ▪
さっくりデプロイ
爆速リリースを支えたSaaS • ユーザー管理を頑張らない人間は インフラを頑張る気がない • 思い出したのは古のRuby PaaS「MOGOK」 ◦ https://www.iij.ad.jp/dev/tech/activities/mogok/ ◦
MOGOKは、もう……
Heroku VS • よくある選択肢はHeroku • 強く選ぶ理由もなければ強く選ばない理由もない ◦ Rails Girlsとかコミュニティ活動なら選ぶ
国産でRailsが動くと嬉しい • 探してみたらあった • ロリポップ!マネージドクラウド by GMOペパボ ◦ https://mc.lolipop.jp/ •
サポートも日本語だし心強い • 英語頑張らなくてよい ◦ とにかく運用で頑張りたくない
頑張らないインフラ 完成 • ロリポップ!マネージドクラウドのDBがMySQL • Gemfileに `gem "mysql2", "~> 0.5"`と追記 •
~完~
インフラ やらないこと • 監視 • バックアップ
インフラ やらないこと • 監視 ⇒なんかあったらDMをくれ • バックアップ ⇒サービス移行もお祭りにしたオタクなら DBがぶっ飛んでも祭りになる説 あると思います ▪
(規約にも「祈れ」って書いてる)
維持費 • オタク金払いがち • 自費 • 実際各種サブスクとそう変わらん値段 ◦ 1400円くらい/月 •
(同人誌より安い)
無事運用開始 • 推し、オタクの様々な方向から要望が発生する
推しから要望もろた • ワンクリックで画像にしたい • お気に入りほしい • ブロックしたい
推しから要望もろた • ワンクリックで画像にしたい ⇒都度ダウンロード→クリップボード • お気に入りほしい ⇒is_favorite カラムを追加 • ブロックしたい
⇒rackでごにょごにょ
開発鯖、すごい アーと思ってた部 分を実装してくれ るひとがいる
開発鯖、すごい(2) 概念推しカラーリングのデザインが出てきた
開発鯖で考えた • 見た目を推しに合わせよう • コンテンツに合わせたタグを付けよう ⇒作った
出てきたバグ • 改行が反映されない ◦ safe_joinのやつじゃん、直します • 絵文字が投稿できない ◦ DBの設定見直してutf8からutf8mb64へ ◦
有識者のDMで「アッDBの設定見てないや」と思 い出せた
オタクの要望 • プレビューしたい • (推しが見てるらしい)手紙の総数を俺らも見たい ⇒作った
オタクの反応を見た • バグる→推しに報告する→推しからDMが来る • 要望がある→推しに連絡する→推しから以下略 • 推しに迷惑のかかる流れが生まれていた • (大体オタク隠れるのでエゴサも機能しない)
オタク、隠れがち • 推しとのやりとりも匿名が喜ばれるオタク • よくよく考えたらオタクが運営アカウントに凸る訳 がない • 運営宛の手紙も受け取ろう ⇒目安箱を作る
目安箱の通知 • Feedback#save後にDiscordのincoming webhook を叩く ◦
オタクの要望 • 金を払わせろと言われた ◦ オタク金払いがち • OFUSEにて送金受付対応 ◦ https://ofuse.me/ •
匿名で送金されがち ◦ (返信したいのでログインして送って欲しい)
お金もらったので • 定期的に収支を公開 ◦ 公開する度に何故か残高が増える謎 ▪ オタク金払いがち ◦ 元気な月だけ公開している ▪
兎にも角にもがんばらない
反響
朗報、「【朗報】」 • 推しの喜びは オタクの喜び https://x.com/shareton _sha/status/166745197 4365896705
プレゼントにもなった • 意図せぬプレゼントに https://x.com/sharepos_hokori/status/1667485783467651072
「教室の隅で埃食ってた」は内輪ネタ https://x.com/sharepos_hokori/status/1665691932918415360
運用体制
あるもの • サービス • 開発鯖 • 規約 • 祈り
ないもの • ドメイン • 監視・バックアップ • CI/CD • テストコード •
やる気
とにかくがんばらない • ゆるくやる • 息切れしないで運用する • 終わらせないのが大事
ちょっとしたオタクのがんばりで 推しの平穏が保たれた🎉
令和ちゃんにキレてるし なかみ https://x.com/sharepos_ hokori/status/18414938 66509467691
野球の話もしてるし https://x.com/sharepos_ hokori/status/18369392 51369578676
🏇の話もしてる https://x.com/sharepos_ hokori/status/18476620 54758580691
今後やりたいこと • もらったイラストのギャラリーページ • お手紙の柄を内容に合わせて変更 ◦ フッターに馬とか野球とか • キリ番踏み逃げを許さないイベント
やらかした感想
エンジニアとしてどう? • 平日にRailsを書いている知識が役に立って嬉しい
オタクとしてどう? • 平日にRailsを書いている知識が「推しのために」役 に立って嬉しい
Railsアプリ • 日々の仕事より楽なアプリだし、簡単に作って雑に メンテできててよい ◦ 実務経験あっての「簡単」 • 遊び場にしようかと思ってたけど、Wasmも ViewComponentもHotwireもなーんにもしてない
幸運 • 作ったはいいものの人が集まらないサービスはある • 最初からターゲットが居て公認で使ってもらえたの はラッキー
アレなおきもち • 休日にコード書いてる人に対して勝手にコンプ レックスがあった • 自分の同人趣味みたいなもんだと分かったのでど うでもよくなった ◦ 休日にコードを書くのは、休日にコードを書くということ ◦
同人誌をつくるのは、休日に原稿を書くということ
楽しんでやる • 趣味に仕事が役立つこともある • 休日に仕事を趣味にする必要はない ◦ やらなくても死なない • 推しの役に立てると嬉しい
いかがでしたか • オタクへの何らかの気持ちは芽生えましたか • 知らない世界は見えましたか • オタク金払いがち、覚えましたか
おしまい 👋