Rails + Twitter bootstrapでエロ動画ソーシャルブックマークWebサービス、ソーシャルオナニー=ソシャニーを作りました。
こちらです http://www.socianie.com
【なにこれ?】
かっこつけた言い方をすると、
「いっぱいエロ動画あるけど結局みんなどんなお宝動画で抜いてるの?という日常的な疑問への答え」
とかでしょうか。
実際どんな事が出来るサービスかというと、基本的には、はてなブックマークのようにエロいページをブックマークする(その時に、コメントを付記することができる)というものです。
サイト内の他のユーザーをフォローすることができ、TwitterのようにTimelineのようなものがあってそこにフォローしている人がブックマークしたページが表示されます(そのページが、xvideos,fc2などの有名サイトならば埋め込みプレーヤーですぐ再生出来ます。)
つまり、フォローしてる人の最新お気に入りエロ動画がチェックできます。
ブックマークされたページはそれぞれが固有のページを持っており、タグを付ける事ができます。
全ユーザーのブックマークしたものは動画一覧で横断的に見ることができ、並び替え・検索などが出来ます。
ブックマーク数で今日のランキング今週のランキングなどが見れます。
あと、累計ブックマーク数によってユーザーのランクが上がったりします。
TwitterのOAuth認証でログインが出来ます(Twitterにツイート投稿などはしません。また、サイト内の名前アイコンもTwitterのものを流用するかどうかも自分で決められます。)
①ソーシャルな機能。他にも世の中に色々素晴らしいエロサイトがありますがそれらはソーシャル機能を持つものが少ない。
②上記の話とちょっと被ってますが、他のサイトは基本コンテンツ自体を自動クローリングするけれどソシャニーはそこをユーザー自身に委譲しているため、集まってくる動画の質はそれに比べて上がるんじゃないかというのと、
③エロサイトにありがちな出来るだけごちゃっと感を無く広告も無しでTwitter bootstrap使って小綺麗な感じ
【作成後記】
Webサービス作るならRailsかな楽で便利らしいしというざっくりとしたイメージからRailsで作り始めましたが、
ネットの情報や入門書に取り組んでもサンプルと同じモノは作れても実際自分が作りたいモノになると、で、どうやるの?となりなかなか進みませんでした。
Railsは色々と勝手によろしくやってくれる機能が多すぎて実際何が起きてんの?というのがわかりづらいというのが第一印象でした。
色々試行錯誤した結果、一番参考になったのはRails tutorial( http://ruby.railstutorial.org/ruby-on-rails-tutorial-book )でした。
英語ですがバージョンは新しいしBootstrapの使い方もわかるしサンプルがTwitterクローンサービスを作ろうというなかなかおもしろいものなので途中で飽きること無く取り組めました。
何かを学ぶ時は、モチベーションが続く形の学び方が一番いいと思いました。
僕はエロ動画が大好きなので、エロサイトというのもモチベーションの1つです(ただ、作業中に脱線して気づいたらキーボードではなく下半身に手が伸びているという事もありました。)
また、上記のチュートリアルはテスト駆動開発なのでSpecのテストをモリモリ書いているのですが、とりあえずはテストに関しては何をやってるのかざっと眺める程度で精読しませんでした。
まずは全体像を把握して何が必要か把握したかったからです。結果的に最後までやりきれたので良かったと思います。
あとは、Rails固有の知識ではなくWebサービス全般の知識で足りないな、と思ったときはネット上や本屋の立ち読みで済ましました。
ネットで細切れにお勉強している場合、本屋で体系的にまとまっている本をざっと読むと意外に抜けてる知識が保管されたり脳内にインデックスが作れるのでいいと思いました。
理由はみんなが良い良いというので乗っておくかという安易なものです。
実際のところgitの良い所を使い倒せているのかというと全くそんな事ないですね。
せいぜいstash位でしょうか。あとbisectとか。
リポジトリは最初はDropBoxに作ってたのですが、途中からBitbucketを使いました。
GitHubを使わなかった理由はBitbucketはプライベートリポジトリが無料で持てるからです。
また、恥ずかしがり屋なのでGithubで公開は敷居が高いと感じたからです。
初のRailsプロジェクトというのもありソースがイケてないので恥ずかしいのです。
いつかイケメンなコードをGithubで公開してオレツエーしたいものです。
サーバーはエロOKのところを探すのがなかなか難しく結局海外のVPSを使いました。
Linodeというところですが、他との違いを挙げるとiPhoneアプリ経由で再起動などが出来たりします。あまりこの機能使ってないですが。
構成はpassenger+apacheで、DBはSQLiteで特にLBなどはないです。
諸々構築後に人気が出た時困らないように負荷分散のお勉強なんぞもやりかけましたがまずは不要かなということで辞めました。
ちなみにサーバーがUS西海岸なのでSSHで作業するとエディタがちょっともっさりすることがありました。
プロジェクト管理は、会社でも使ってるのでRedmineかなと思ったのですがどうせ一人だしRedmineのUIすきじゃないのでTrello( https://trello.com/ )を使いました。
TODO,Doing,Done,Bug,Suspendのリストを作ってやること忘れないように管理しました。
ふと出先で思いついた機能とかをiPhoneでスイっと追加など出来て便利でした。
正月に公開してお友達界隈で見てもらったんですが、よかれと思って作ったChrome拡張にCSRFの対策が不備あり結局ブックマークレットにしたり、
ソースを見てもらったら設計がRestfulじゃないとかControllerがfat過ぎるModelに押しこめなどアドバイスをもらえたり無知な僕には色々とお勉強になりました。
出来たものはしょぼいものですが、「Webサービス作ったことないコンプ」は少し解消出来た気がします。
以上、月19ドルも払ってるのにお友達だけで使われてるのも寂しいので増田でまとめついでに宣伝してみました。
叩かれるんでしょうか。怖いです。いじめないで。
自分もサーバの運営を勉強したくてVPSを借りようと思ってるんだけどどこが一番良いんだろうなあ