はてなキーワード: hamlとは
skrsvideo
今回プログラミング言語はRubyを選択したため、基本的にはVPS・クラウド的なサーバーでLinuxが動作する環境を探しました。
エロサイトを運営するにあたって問題になるのがサーバー選びです。
基本的に日本のレンタルサーバーではアダルトサイトの運用を禁止しています。
普段使っているさくらのVPSが利用できず、AWSもなんだかグレーな感じ(東京リージョン以外なら・・・?)
そんなわけで探し、GMOグループのWebkeepersを使いました。
使っても良いよ〜というお墨付き、
そして価格も手頃だったためここに決定。
DB | MariaDB |
---|---|
Webサーバ | Nginx |
フレームワーク | Ruby on Rails |
MariaDBを選んだ理由はなんとなく、MySQLとの違いはほぼありません。利用するGEMもmysql2でいけます。
ちなみにJavaScriptは使わずすべてCSSで作る方針にしました。
スマホ・PC両対応のためにMedia Queryでレスポンシブにしています。
↓
↓
↓
という流れです
gem 'nokogiri'
フロントはhamlとsassで、難しいことはしていないのでcompassはいれませんでした。
あとはデバッグ用にrails_config、pry系が入っています。
skrsvideoでは動画のURLを取得するためにクローラーもどきでスケジューリングして収集しています。
コマンドはこんな感じ
Rakeタスクはnokogiriでxvideosへのリンクを集めています。
doc = Nokogiri::XML( open(URI.parse(url)).read )
urls = []
urls.push link[:href] if link[:href] =~ /xvideos.com\/video(\d+)/
end
Nokogiriのスクレイピングでaタグのリンクを取得し、URLがxvideosのものかチェックして保存って感じです。
動画を探し終えるとaタグからランダムでピックアップし次のページに進んでいきます・
動画が見つかったページはドメインをDBに記録して、しばらくしたら再びクローリングをするようにし、収集の効率化。
30分以上の表示はちょっと頑張ったところ
これはタイトルの文字列から部分一致で引っかかったものを表示しています。
AV女優の名前を表示するためにWikipediaからとってきたら、ちょっと膨大な数になってしまったため断念。
DMMのランキングに載っていた方だけをとりあえず入れています。
http://individualist.link/ (←ドメインかっこいいでしょ)
〜 居酒屋にて 〜
A「やっぱり若者が稼ぐにはアプリ作るしかないと思うんですよ」
B「あー分かる」
C「ゲームは当たると大きくていいよね」
A「いいですよね」
A「そういう人の話聞いてみたいんですけどなかなか出てこないですね」
B「どういう人がどういうサービスで当てたのかまとめたい」
A「いいですねえ。Wiki 的な」
B「Google Docs とかでやってみる?」
A「おお、やりましょう」
B「Webサービスにしてもいいかも」
B「できた」
B「ドメイン取ろう」
アルコール入ってるから話のディティールうろ覚えだけどこんな流れで作りました。
当てたいなら先例を見るのが一番参考になるはずだし、僕は個人で作ったものが流行っているのを見るのが好きだし、そういうのとても興味ある。
このサイトを見ていると、どういう人がこのサービス作ったんだとか、これ個人で作ってたんだという発見があっておもしろいと思います。
1時間で出来たというのはほとんど誇張ではなくて、デザインに拘る時間とサーバーに設置する時間を抜かせば本当に1時間でできます。
・画像保存
・タグ付け
・JavaScriptで動き付ける
・CSS整える
・デザイン
というような感じになる。これらを実直にいちいち実装してたら1日で終わるか分かりません。
本を読む一番はやい方法は、文字を読まないことです。
ちょっとコードが書けると実装する道筋が思いついちゃうからライブラリを探す考えに及ばず実装しちゃう事があると思います。
そういう事は避けて、アプリを書くならアプリの本体を最小に済ませるか、ライブラリ自体を作ることに力を入れましょう。
こちらのサイトではRailsのレールに乗っかって開発しました。
以下の例はRailsを使った方法ですが、モダンなフレームワークを使っているのであればだいたい似たような話になると思う。
手に馴染んだフレームワークがあるならなんでもいい。
クソ小さなロジックと数ページしかないならPHPでもいいけど、
とにかくはやく作ることがしたいなら何かしらフレームワーク使ったほうがいい。
秘伝の Rails Application Template を用意しておくのも良い。
モダンなフレームワークなら何も考えずにデータベース接続できるはず。
Rails なら config/database.yml に接続情報書いて rake db:create && rails g model User name:string です。
ソーシャルアカウントでログインする要件が出たら、何も考えずに「あ、OmniAuth」となりましょう。
・画像保存
画像保存が必要になったら反射的に「Paperclip か CarrierWave どっにしよう」となりましょう。
・タグ付け
ActsAsTaggableOn を使います。
has_many :through のめんどくさいタグの実装ですが
これ入れて rake acts_as_taggable_on_engine:install:migrations && rake db:migrate を打てば一発で完成します。
・JavaScript で動き付ける
早くつくりたいんなら JavaScript は捨てましょう。
少なくとも生の JavaScript 書く時代ではないので CoffeeScript 使うと良いです。
・CSS 整える
とりあえず Bootstrap 入れましょう。
クラスの付け方を覚えちゃうと CSS 弄って HTML リロードして確認なんてことしなくても形は整います。
Bourbon gem 使って mixin ライブラリ組み込んじゃうのもいいですね。
HTML 書くのやめましょう。
Haml や Slim のようなテンプレートエンジンを使います。
Zen Coding でもいいけど、結局出力されるのが HTML じゃ見通し悪くて辛いと思う。
Web Components の時代になったらもっと簡単になるんだろうな。
・デザイン
ただ、Webページやアプリというのはだいたい決まったパターンがあるので、いろいろな事例を見るとよいでしょう。
正直レイアウト自体は他のサイト真似るのは悪くない判断だと思います。
むしろその方がユーザーにとって慣れ親しんだ分かりやすいサイトでもあります。
http://individualist.link/ の場合、http://www.producthunt.com/ を異常なほど参考にしました。
まあここまで書いてなんだけど、前提知識として Rails が使えるようになってないといけないのは敷居高くて悪かったと思う。
なお、今回つくったこのサイト、ぜひともみなさんにも投稿していただきたいのですが現在投稿者は承認制としております。
私本当に個人が作って運営しているというアプリやサイトというのが好きでして、
【エロ注意】eroino http://eroino.net/
eroinoは毎日更新される大量のアダルト動画を、AV女優やキーワードで分類して表示したり、お気に入りリストにクリップできるサイトです。現在の動画数は、約28万件。
http://anond.hatelabo.jp/20101203150748
eHub Interviews