はてなキーワード: Coffeescriptとは
エロが好きです。
ボクはDMM.R18のヘビーユーザーなのですが、どうしても自分の好みの中だけで、グルグル回ってしまい、
世の中にAVは山ほどあるはずなのに、知らないなんてもったいない!もっとたくさんのエロに出会いたいという思いがあって日々悶々としていました。。
そんな中、AVというのは毎日の気分によってオナニーしたい見たいものが違うわけだから(例えば毎日食べたいおかずが違うように)、
今の自分の気分を簡単に答えれば、それに対してオススメのAV動画を紹介してくれるというサービスはどうだろう?とモヤモヤと考えていました。
ある日、会社の人に相談したら、それ「いいね!」ということになって、「そういえばDMMのAPIってのが公開されたから、それ使ってできるんじゃね?」ってことになり、
本格的にサービス開発を行うことになりました。
そしてこの度無事リリースすることができました。
「今夜のおかず」
3つの質問に YES / NO で答えるだけで、今のあなたに最適なアダルト動画を紹介するサービスです。
・フレームワーク:express(node.jsのフレームワーク)
・クライアント:jQuery、CoffeeScript、SCSS
・ビルドツール:grunt
node.jsは少し趣味でやった程度で、今回やってセッション管理やルーティング周りが勉強になりました。
データベースにはMySQLを使っています。node.jsならばmongoDBというイメージが強いですが、質問をランダムに表示する機能で、
mongoDBは現時点で正式な機能としてはランダム検索が出来なかったので、MySQLを選びました。
あと、CoffeeScriptやSCSSはJavaScriptやCSSの記法を簡単にしてくれるやつで、慣れてしまうと離れられません。
あとはTwitter Bootstrap。これなしでは生きていられません。
スマホでもなるべく早く結果ページまでたどり着けるようにしたつもりです。
オススメの動画が表示された後に、今日はこの動画の気分じゃない!と思ったときはチェンジボタンにより、同じ条件で他の動画にチェンジ!できます。
質問からやり直したいときは、さいしょから!ボタンで他の質問からやり直せます。
一刻一秒を争うエロビ探しですのでパフォーマンスには気を配りました。
最初はサーバーサイドでHTMLテンプレートを使わずに完全にREST API化して進めていましたが、
最初の表示までの若干のライムラグとSEO対策の為、最初の質問だけnode.jsでHTMLテンプレートを使用して組み立てています。
また、シンプルなサイトなのでライブラリはjQueryのみ使用し、concat/minify化はgruntのタスクとして登録しています。gzip化はNginxで行なっています。
我らがDMM様への敬意を払い、白ベース+ポイントで赤のシンプルなデザインにしています。
・CSS(SCSS)が初めてだったので、微調整するのが大変でした。
・質問のパターンを考えるのと、紹介する動画が偏りすぎないようにするのが難しかったです。(これはまだ要調整)
・質問に対するおすすめ動画の精度をもっとあげていく。 (ユーザーの癖を把握して、機械学習とかできればいいかなと)
・おすすめ動画を表示した後に、その商品を誰かにつぶやいたり。
今回、同じ会社に勤めるエンジニア3人が約2ヶ月で作成しました。
実験的なサービスでもありますので、今後も色々と機能追加をしていくつもりです。
http://www.kanzen21.com/という有名なサイトと似たサイトを作ってみました。
このサイトはプログラミング初心者のおっさんが四ヶ月で作ったWebサイトとして有名です。
http://anond.hatelabo.jp/20101203150748
なぜ似たサイトををわざわざ作ったのかなんですが、完全に一致は便利なんですが色々不満がありまして
・芸能人リストがしょぼすぎる。 - いちいち、芸能人のスリーサイズ調べてスライダー動かすのが面倒。
・年齢スライダーがない。- 若い子が好きな人もいれば熟女好きもいるはず。
・ベスト作品を除いてほしい。 - AV女優の単体作品だけが見たい。
・横三列じゃなく八列ぐらいにしてほしい。- もっと一瞬で好みのAV女優を見つけたい。
・年齢順とか作品順とかにソートしたい。ア行カ行とか指定できるとなおいい。
というわけで、プログラミングの勉強を兼ねて作ってみることにしました。
作成期間は2週間ぐらいです。
1、DMMからAV女優情報、作品情報などをmechanize(Rubyのクローラー)を使って取得。
2、Wikiからアイドル・モデルのスリーサイズなどをmechanizeで取得。
3、chickipediaから海外のセレブのスリーサイズなどをmechanizeで取得。
6、デザインを整える。
1、http://actress.dmm.co.jp/-/top/ DMMのAV女優情報から情報取得する。
完全に一致さんみたいにFace.comのAPIを使うのは面倒だったので、
作品のタイトルにAV女優の名前がある作品だけをピックアップすることにした。
そうすることで自動的にAV女優100名出演みたいなベスト作品とかは取り除かれる。
グラビアアイドル一覧から個別ページに行き、必要な情報を取得。
3、英語版のwikiにスリーサイズが載っていなかったのでhttp://www.mademan.com/chickipediaから必要な情報を取得。
バストサイズがブラのサイズしかのってなかったが大体合ってればいいかということで、そのままcmに変える。
身長がフィート表示なのでこれもcmに変えてデータベースに突っ込む。
外人のカップ数がバストに比べて小さいなと思っていたら、外国のAカップは日本のCカップぐらいあるというトリビアを知る。
5、JQueryを使ったことがなかったので、一番苦労した。
JQueryというよりも非同期通信をするためのAJaxという仕組みをRailsでどう実装するのかが分からなかった。
具体的にはスライダーの値をRailsのコントローラーに渡すにはどうすればいいのかが分からなかった。
色々検索しているとhttp://eddorre.com/posts/tutorial-filtering-results-with-jquery-ui-slider-and-rails-3-beta-3
というRails3でUI Sliderを使用するためのチュートリアルというドンピシャのサイトが見つかる。
英語で読み解くのに苦労したが、合わせてhttp://jqueryui.com/demos/slider/でスライダーの使い方を見ながら何とか実装していった。
非同期通信はかっこいいけど実装するのに手間がかかるなと思いました。
あとPHPにすら挫折した人間なのでjavascript書くのがきつかったです。
Rubyみたいに書けるらしいCoffeescriptを勉強したい。
6,デザインはBootstrap
7,サーバーは、とりあえず人が来るかわからないので、一番安いオスキニサーバーVPS月450円のプランにした。
アダルトOKなのは確認ずみ。http://support.saases.jp/index.php?action=artikel&cat=85&id=409&artlang=ja
何度かやったことがあるのでいつも通りセッティングする。かなり面倒な作業。
一応、アダルトということで,mod_evasive,KeepAliveなどの設定をする。
スリーサイズをスライダーで検索するので3SizeSearchです。
完全に一致さんとの一番の違いは有名人リストが充実していることです。
好きな芸能人と似たスタイルのAV女優さんがすぐにわかります。
例えば、西田麻衣に似たスタイルのAV女優は範田紗々だとすぐにわかります。
検索の幅を緩くすることもできます。+-1から+-2へボタンを押して切り替えると、さらに22名のAV女優名がでてきます。
http://3sizesearch.com/people/%E8%A5%BF%E7%94%B0%E9%BA%BB%E8%A1%A3
例えばアヴリル・ラヴィーンに似たスタイルのAV女優は、藤咲りさ、本田成美、優木ルナになります。
似たスタイルの芸能人も分かります。アヴリルの場合、浅香友紀 菅野美穂 木内美穂 黒坂真美 小橋めぐみ 佐藤ありさ さとう里香 西原亜希 平田薫 松永京子 蓮舫という感じです。
ですのでAV女優さんの個別ページに行けば似たスタイルの芸能人も分かります。
例えばRioに似たスタイルの芸能人は浅倉結希 立花麗美 吉井怜となります。
http://3sizesearch.com/people/rio
楽しみながら作れ、JQueryの勉強にもなったので良かったです。
アイドルよりAV女優の方が人数も多いし可愛くてスタイルのいい子が多いですね…。
小飼弾さんの「作品から商品へ - 書評 - 職業としてのAV女優」というエントリーが頭に浮かびました。
http://blog.livedoor.jp/dankogai/archives/51804435.html
よろしければ3SizeSearchを使ってみてください。http://3sizesearch.com
いやC++はクソなりにいいところもあるし、PHPは避けることもできるが
JavaScriptは単にクソというだけじゃなく使用を強要してくるからな。
無邪気なユーザーや、無知な投資家ども、TechCrunch等のライター
経験の浅そうなエンジニアどもを見てると腸が煮えくり返るんだけど。
あらゆるソフトウェアをクソ言語JavaScriptで実装させる気かよ。悪夢だ。
CoffeeScriptやらDartやら出てきてるのは、
ナマじゃとても使えねーぜこんなクソ言語とはっきり言明しているようなものだろ。
真面目な話、JavaScriptをどうやって滅ぼすかが今後10年か20年かの課題になってくると思う。
class MyClass constructor: -> name = 'unknown' @getName = -> return name @setName = (newName) -> name = newName MyClass:: = do -> _greet = -> console.log('どうも、' + @getName() + 'です。') return { constructor: MyClass greet: _greet } myInstance = new MyClass() myInstance.setName('純子') myInstance.greet() #どうも、純子です。
CoffeeScript で @なんとかのプロパティが全部パブリックになるのが気になってて。